我试图实现 C++ 单链接。我创建了一个方法来创建一个节点并添加一个值并指向另一个节点但我必须记住索引。
- 如何在不记住索引的情况下改进代码和创建节点? (我想维护顺序 = 第一个创建的节点指向另一个等)
类方法:
void LinkedList::addValue ( int val )
{
if ( ! index )
{
n = new Node();
head = n;
n->value = val;
n->next = NULL;
}
else
{
n->next = new Node( );
n = n->next;
n->value = val;
}
++index;
}
最佳答案
我想,您已经有两个成员变量:head 是根节点,n 是最后一个节点。您应该在构造函数中使用 NULL(c++11 的 nullptr)初始化它们。然后,您可以在向列表中添加新值时检查是否 n==NULL。
LinkedList::LinkedList():head(NULL),n(NULL)
{}
void LinkedList::addValue ( int val )
{
if (n==NULL)
{
n = new Node();
head = n;
n->value = val;
n->next = NULL;
}
else
{
n->next = new Node( );
n = n->next;
n->value = val;
}
}
但是,如果您想在一次快速读取操作中找到列表大小而不遍历其所有节点,则索引变量会很有用。
关于c++ - 链表创建节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956566/