所以,我要靠,问题是插入头 我所期望的:3 2 1 打印出的内容:1746464 我不知道这些数字的含义,有人可以指出我的代码出了问题的地方,我将非常高兴,感谢您的阅读 这是我的代码:
#include <iostream>
using namespace std;
class node
{
private:
int value;
node *pnext;
node *phead;
public:
node ()
{
pnext= NULL;
phead= NULL;
}
node* inserthead(int b);
void print();
};
node* node::inserthead(int _value)
{
node *p= new node ;
value = _value;
pnext = phead;
phead =p;
return phead;
}
void node:: print ()
{
node* p = phead;
while(p != NULL)
{
cout << p->value << endl;
p= p -> pnext;
}
}
int main()
{
node a;
a. inserthead(1);
a. inserthead(2);
a. inserthead(3);
a.print();
return 0;
}
答案 0 :(得分:0)
node* node::inserthead(int _value)
{
node *p= new node ;
value = _value;
pnext = phead;
phead =p;
return phead;
}
在根节点中设置value
和next
,而不添加node
,因此该值进入错误的位置,而node
则不链接。当您尝试打印时,程序将在添加的最后一个节点中打印未初始化的value
。其余节点丢失了。
代替使用
node* node::inserthead(int _value)
{
node *p= new node ;
p->value = _value; // new node gets value
p->pnext = phead; // new node gets linked.
phead =p;
return phead;
}