DSA CPP 中的链接列表

问题描述 投票:0回答:1

有人可以帮我理解创建链表时如何制定逻辑吗?在对链表进行编码时,尤其是在列表的插入部分,我感到很困惑。

我一直在看教程,但可以理解如何实现链表。我尝试多次编码,但仍然不理解。这是一次随机尝试,但仍然没有得到它:

#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; 
}
c++ dynamic
1个回答
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 已正确初始化。

当然有多种方法可以实现这一点,但我强烈建议阅读有关链接列表的内容!

© www.soinside.com 2019 - 2024. All rights reserved.