这是基本链表的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;
}
};
答案 0 :(得分:0)
h
是一个指针,应该观察列表的头部。假设ias
的责任是在列表前插入一个新值,会发生什么情况如下:
node
类型的未命名对象,并将其地址存储在变量x
; y
的值复制到val
指向的node
类型的未命名对象的数据成员x
中; h
的值(即列表的第一个节点的地址)复制到ptr
指定的未命名对象的数据成员node
中。 {1}}; x
现在应该观察h
所指向的node
类型的未命名对象作为列表的头部。您可以通过将x
指向的node
类型的未命名对象的地址复制到x
来实现此目的。希望得到这个帮助。