LinkedList创建节点 我尝试实现C++的单链接。我创建了一个方法,可以创建一个节点并添加一个值并指向另一个节点,但我必须记住索引 如何在不记住索引的情况下改进代码和创建节点?(我要维护顺序=第一个创建的节点指向另一个节点等)
类方法:LinkedList创建节点 我尝试实现C++的单链接。我创建了一个方法,可以创建一个节点并添加一个值并指向另一个节点,但我必须记住索引 如何在不记住索引的情况下改进代码和创建节点?(我要维护顺序=第一个创建的节点指向另一个节点等),c++,linked-list,C++,Linked List,类方法: 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->valu
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;
}
您可以创建另一个名为Tail的指针来指向最后一个元素。这样,您就可以在不使用索引的情况下为列表添加值。 我称这个方法为append 无效附加(int-val){ 还可以通过为节点创建构造函数来改进代码:
Class Node{
public:
int value;
Node * next;
Node(Node * nextEle = NULL) {
next = nextEle;
}
Node(int val,Node * nextEle = NULL) {
value = val;
next = nextEle;
}
}
您可以创建另一个名为Tail的指针,指向最后一个元素。这样您就可以在不使用索引的情况下向列表中添加值。 我称这个方法为append 无效附加(int-val){ 还可以通过为节点创建构造函数来改进代码:
Class Node{
public:
int value;
Node * next;
Node(Node * nextEle = NULL) {
next = nextEle;
}
Node(int val,Node * nextEle = NULL) {
value = val;
next = nextEle;
}
}
我想,您已经有了两个成员变量:head是根节点,n是最后一个节点。您应该在构造函数中用NULL(对于c++11来说是NULL ptr)初始化这两个变量。然后,当您向列表中添加新值时,您可以只检查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;
}
}
但是,如果希望在一个快速读取操作中查找列表大小而不遍历其所有节点,则索引变量可能非常有用。我想,您已经有两个成员变量:head是根节点,n是最后一个节点。您应该使用NULL(对于c++11,为NULL ptr)初始化这两个变量然后在向列表中添加新值时,只需检查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;
}
}
但是,如果希望在一次快速读取操作中查找列表大小而不遍历其所有节点,则索引变量可能非常有用。将
Node*head;
成员变量放入LinkkedList
类。使用nullptr
初始化head
。对照nullptr
检查head
将Node*head;
成员变量放入LinkkedList
类中。使用nullptr
初始化head
。对照nullptr
检查head
。