如head是头指针和头结点的区别
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/08/10 21:46:52
如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是不是这样理解呢?急
#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();
}这个代码哪里错了呢?
// 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();}
再问: s->next = head; head = s; 这两句我真的还没能理解的,s->next=head我理解的是,你把head的地址赋给s->next,为什么又把s的地址赋给head呢?希望帮我解释下噶~~链表这里有些问题, 我认为,head就是个头指针,别个把地址拿给它,它去指向,这样理解对吗?
再答: head 只是一个指针,如图:
再问: s->next = head; head = s; 这两句我真的还没能理解的,s->next=head我理解的是,你把head的地址赋给s->next,为什么又把s的地址赋给head呢?希望帮我解释下噶~~链表这里有些问题, 我认为,head就是个头指针,别个把地址拿给它,它去指向,这样理解对吗?
再答: head 只是一个指针,如图:
头指针和头指针变量及头结点的关系和作用
head为头结点,head->next是表示头结点地址还是第一个结点的地址呢?
设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是( ).
在一个带头结点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head可用p表示为head=
描述以下三个概念的区别:头指针、头结点、首结点,并说明在单链表中设置头结点的作用是什么?
在一个头指针为L的循环链表中,指针域为next,指针P所指结点(此结点是尾结点)的条件是( ).
数据结构里!p || p的意思是p空吧.可是p不是头指针吗,头指针指向头结点怎么空了?原文P=L.
头结点的指针为空是什么情况,在一段程序中有这样的语句,if(head==null||head->next==null)
一个链表不知道头结点,有一个指针指向其中一个结点,请问如何删除这个指针指向的结点.
若循环链表的结点具有数据域data和指针域next,H指向其头结点,该表具有一个结点的条件是()为真值
为什么建立一个头结点的时候要使头结点的指针域为空
已知head为带头结点的单循环链表的头指针,链表中的数据元素依次为(a1,a2,a3,a4,…