有人可以帮我理解创建链表时如何制定逻辑吗?在对链表进行编码时,尤其是在列表的插入部分,我感到很困惑。
我一直在看教程,但可以理解如何实现链表。我尝试多次编码,但仍然不理解。这是一次随机尝试,但仍然没有得到它:
#include <iostream>
using namespace std;
struct node
{
int data;
node* next;
};
class linkedlist
{
protected:
node* head;
public:
linkedlist()
{
head = nullptr;
}
void insertAtbeginning(int d)
{
node* new_node = new node;
new_node->data = d;
new_node->next = head;
}
};
int main()
{
linkedlist l;
l.insertAtbeginning(4);
return 0;
}
在这个实现中,存在一些缺陷,但我想指出一个根本性的缺陷; HEAD 指针。通常,HEAD 指针是链接列表的入口点,您可以通过将元素添加到头指针的下一个来插入新元素。
例如:
头 -> Node1->Node2->NULL
Head->newNode->Node1->Node2->NULL
此类插入的伪代码如下所示:
x = new Node
c.data = d
x.next = HEAD.next
HEAD.next = x
确保您的 HEAD 已正确初始化。
当然有多种方法可以实现这一点,但我强烈建议阅读有关链接列表的内容!