head = newnode和newnode-> ptr = head之间的差异

时间:2014-10-11 13:29:25

标签: c++ linked-list

这是基本链表的insertatstart()fn的代码。我不知道x-> ptr = h和h = x之间的差异,其中h是head .explain给我的每个语句都做了什么。

#include<iostream>

using namespace std;
class node{
public:
    int val;
    node*ptr;
};
class linkedlist{
private:
    node*h;
public:
    linkedlist() :h(NULL)
    {}
    void ias(int y)
    {
        node* x = new node;
        x->val = y;
        x->ptr = h;
        h = x;
    }
};

1 个答案:

答案 0 :(得分:0)

h是一个指针,应该观察列表的头部。假设ias的责任是在列表前插入一个新值,会发生什么情况如下:

  • 您创建一个node类型的未命名对象,并将其地址存储在变量x;
  • y的值复制到val指向的node类型的未命名对象的数据成员x中;
  • h的值(即列表的第一个节点的地址)复制到ptr指定的未命名对象的数据成员node中。 {1}};
  • 你说指针x现在应该观察h所指向的node类型的未命名对象作为列表的头部。您可以通过将x指向的node类型的未命名对象的地址复制到x来实现此目的。

希望得到这个帮助。