class LinkedList
{
private:
int data;
LinkedList *ptr;
public:
LinkedList(int i_data)
{
data = i_data;
ptr = 0;
}
~LinkedList()
{
delete ptr ;
}
void insert(LinkedList *node)
{
while(this->ptr!= 0)
this = this->ptr;
this->ptr= node;
}
}我将创建一个像head = new LinkedList(4)这样的头节点,然后像head->insert(new LinkedList(5))一样调用,然后再调用。你能告诉我上面的类代表一个链表吗?我想是的,它有包含下一个节点地址的节点。如果我说错了,请纠正我
发布于 2010-03-22 23:08:36
我的问题是,您没有将列表与列表的节点区分开来。
这会导致这样的问题:如果没有空指针,就不能有一个空的列表:
我将创建一个头节点,如head =
LinkedList(4)
的指针我会更新接口以获取数据对象(就像描述的Jared Par一样)。
代码:
class LinkedList
{
struct Node
{
Node(int d): data(d) {next = NULL;}
~Node() {delete next;}
int data;
Node* next;
};
std::auto_ptr<Node> head;
Insert(int data)
{
if (head.get() == NULL)
{
head.reset(new Node(data));
}
else
{
Node* loop;
for(loop = head.get();loop->next != NULL;loop = loop->next) {};
loop->next = new Node(data);
}
}
};
LinkedList list;https://stackoverflow.com/questions/2490450
复制相似问题