C++链表插入结构中的节点和指针

标签 c++ pointers linked-list new-operator nodes

我正在尝试插入一些节点。我的实现基于斯坦福教程。 http://cslibrary.stanford.edu/103/LinkedListBasics.pdf

下面是我的代码。

 struct node
 {
      int p_data;
      struct node*   p_next;

      node(node* head, int data)
      {
            p_next = head;
            p_data = data;
      }

      explicit node(int data)
      {
            p_next = nullptr;
            p_data = data;
      }
 }

这是我的插入函数

 node* insert_node(node* head, int data)
 {
      return new node(head, data);
 }

我想做的是,我为初始设置了 1、2、3 的列表,并想添加更多元素,如 5、6、7。以下是我的尝试,但插入没有做任何事情。所以我只打印出 1、2、3。在 main 函数中,我有...

  struct node* head     = new node(NULL);
  struct node* nodep_01 = new node(NULL);
  struct node* nodep_02 = new node(NULL);

  head->p_data = 1;
  head->p_next = nodep_01;

  nodep_01->p_data = 2;
  nodep_01->p_next = nodep_02;

  nodep_02->p_data = 3;
  nodep_02->p_next = nullptr;

所以如果我打印这个,我得到 1、2、3。然后我尝试插入另一个值为 5 的元素,但它没有做任何事情。

  insert_node(head, 5);

有人可以帮我做这个吗?我想在此列表中插入元素...提前致谢!

最佳答案

insert_node(head, 5);

应该是:

head = insert_node(head, 5);

关于C++链表插入结构中的节点和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18352058/

相关文章:

c++ - MinGW - 制作 : cc: Command not found

c++ - Sizeof 指向数组的指针

c - 如何在 C 中访问链表中的下一个元素?

c - 迭代链表,if 语句不起作用

c++ - 什么是非推论上下文?

c++ - 如何从 C++ 列表中删除重复值?

c++ - 标准在哪里定义了将值绑定(bind)到引用的优先顺序?

c++ - 删除运算符的确切操作

c++ - 我什么时候应该为我的类(class)提供析构函数?

c - C中的单链表