好吧,我知道这是一个可笑的简单问题,但由于某种原因,我无法获得链接列表的工作。这可能只是因为我真的很累,因为我以前做过一百万次。把我的程序放到最简单的可能实现中,仍然无法工作。链接列表类
非常基本的实现,只是做一个整数的LL,我做了一百万次之前,但无论出于什么原因,它永远不会前进的头。
的main.cpp
#include <iostream>
#include "ll.h"
using namespace std;
int main()
{
int x;
list ll;
int i =0;
while(i == 0)
{
cout << "Enter a value to add to the LL ";
cin >> x;
ll.add(x);
ll.display();
}
return 0;
}
ll.h
struct node
{
int val;
node * next;
};
class list
{
public:
list();
void add(int);
void display();
node * head;
};
ll.cpp
#include <iostream>
#include "ll.h"
using namespace std;
list::list()
{
head = NULL;
}
void list::add(int x)
{
if(!head)
{
cout << "First " << endl;
head = new node;
head->val = x;
head->next = NULL;
}
else
{
node * current = head;
while (current)
current = current->next;
current = new node;
current->val = x;
current->next = NULL;
}
}
void list::display()
{
node * current = head;
while(current)
{
cout << current->val << endl;
current = current->next;
}
}
你的main中的while循环将不起作用,因为'i'的值永远不会改变。 'while(i == 0)'永远不会是错误的。 – 0x499602D2
什么不起作用?描述你正在得到的不需要的行为 – amit
当然,在实际的代码中,你应该使用'std :: list'(或者如果你有一个C++ 11编译器'std :: forward_list ')。 –