如head是头指针和头结点的区别我理解的是head去指向头结点,如果符合作者的条件就不断申请动态内存,然后head就不停的替换新生成的结点,把head的地址拿给新结点,把新结点的地址拿给head是不
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/06 12:03:02
![如head是头指针和头结点的区别我理解的是head去指向头结点,如果符合作者的条件就不断申请动态内存,然后head就不停的替换新生成的结点,把head的地址拿给新结点,把新结点的地址拿给head是不](/uploads/image/z/11522361-57-1.jpg?t=%E5%A6%82head%E6%98%AF%E5%A4%B4%E6%8C%87%E9%92%88%E5%92%8C%E5%A4%B4%E7%BB%93%E7%82%B9%E7%9A%84%E5%8C%BA%E5%88%AB%E6%88%91%E7%90%86%E8%A7%A3%E7%9A%84%E6%98%AFhead%E5%8E%BB%E6%8C%87%E5%90%91%E5%A4%B4%E7%BB%93%E7%82%B9%2C%E5%A6%82%E6%9E%9C%E7%AC%A6%E5%90%88%E4%BD%9C%E8%80%85%E7%9A%84%E6%9D%A1%E4%BB%B6%E5%B0%B1%E4%B8%8D%E6%96%AD%E7%94%B3%E8%AF%B7%E5%8A%A8%E6%80%81%E5%86%85%E5%AD%98%2C%E7%84%B6%E5%90%8Ehead%E5%B0%B1%E4%B8%8D%E5%81%9C%E7%9A%84%E6%9B%BF%E6%8D%A2%E6%96%B0%E7%94%9F%E6%88%90%E7%9A%84%E7%BB%93%E7%82%B9%2C%E6%8A%8Ahead%E7%9A%84%E5%9C%B0%E5%9D%80%E6%8B%BF%E7%BB%99%E6%96%B0%E7%BB%93%E7%82%B9%2C%E6%8A%8A%E6%96%B0%E7%BB%93%E7%82%B9%E7%9A%84%E5%9C%B0%E5%9D%80%E6%8B%BF%E7%BB%99head%E6%98%AF%E4%B8%8D)
如head是头指针和头结点的区别我理解的是head去指向头结点,如果符合作者的条件就不断申请动态内存,然后head就不停的替换新生成的结点,把head的地址拿给新结点,把新结点的地址拿给head是不
如head是头指针和头结点的区别
我理解的是head去指向头结点,如果符合作者的条件就不断申请动态内存,然后head就不停的替换新生成的结点,把head的地址拿给新结点,把新结点的地址拿给head是不是这样理解呢?急
#include
using namespace std;
class list
{
public:
\x05list *head;
\x05list *next;
\x05int data;
\x05void creat()
\x05{
\x05\x05int x;
\x05\x05cin>>x;
\x05\x05while(x!='#')
\x05\x05{
\x05\x05\x05list *s=new list;
\x05\x05\x05s->data=x;
\x05\x05\x05s->next=head->next;
\x05\x05\x05head->next=s;
\x05\x05\x05cin>>x;
\x05\x05}
\x05}
\x05
};
void main()
{
\x05list p;
\x05p.creat();
}这个代码哪里错了呢?
如head是头指针和头结点的区别我理解的是head去指向头结点,如果符合作者的条件就不断申请动态内存,然后head就不停的替换新生成的结点,把head的地址拿给新结点,把新结点的地址拿给head是不
// 1. 你的程序在第一次s->next=head->next;会挂,因为head是指针,并非实体节点,且head没 // 有初始化很危险
#include <iostream>
using namespace std;
class list
{
public:
list *head;
list *next;
int data;
list()
{
head = NULL;
next = NULL;
}
void creat()
{
int x;
cin>>x;
while(!cin.fail()) // x!='#' 判断,cin会类型检查,不会赋值给x的,所以将会是死循环
{
list *s=new list;
s->data=x;
s->next = NULL;
s->next = head;
head = s;
cin.clear(); /* 错误位重置 */
cin.sync(); /* 清空缓存区 */
cin>>x;
}
}
// 增加打印显示
void display()
{
list *pl;
pl = head;
while(pl)
{
cout<<pl->data<<" ";
pl = pl->next;
}
cout<<endl;
}
};
void main()
{
list p;
p.creat();
p.display();
}