C语言中,头指针head,和head->next分别是什么?

我是这样理解的:head是指向链表的一个节点,那么head->next就是第一个节点的指针域.如果另外的指针p,p=head;和p=head->next;分别表示什么?我... 我是这样理解的:head是指向链表的一个节点,那么head->next就是第一个节点的指针域.如果另外的指针p,p=head;和p=head->next;分别表示什么?

我认为p=head;它指向了链表里的起一个节点(存的是第一个节点的地址);
p=head->next;它指向了链表里的起二个节点(存的是第二个节点的地址);
我这样理解对么?

因为做链表逆置的时候,有的时候写的是p=head;有的时候写的是p=head->next;,实在是很糊涂
NODE*creatlist(int a[ ])//建立链表
{ NODE *h,*p,*q; int i;
h=(NODE*)malloc(sizeof(NODE));
h->next=NULL;
for(i=0;i<N;i++)
{ q=(NODE*)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h->next==NULL) h->next=p=q;//如果这里是h=p=q,两种情况建完以后有什么区别????
else { p->next=q; p=q; } }
return h; }
展开
 我来答
965225646
2009-03-24 · TA获得超过289个赞
知道答主
回答量:145
采纳率:0%
帮助的人:0
展开全部
很简单,head=p是把p的地址直接赋给head,而p=head->next是把head中的指针域即下一个节点的地址赋给head,你记住一点,next中存放的是下一个节点的地址,->是访问next的符号

“if(h->next==NULL) h->next=p=q;//如果这里是h=p=q,两种情况建完以后有什么区别???? ”对于这个问题,h->next=p=q和h=p=q是截然不同的,h->next=p=q是指把p和q中存放的地址赋给h的next域而不是赋给h,而h=p=q是指把p和q中存放的地址赋给h,
tattackor
推荐于2017-09-14 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:861万
展开全部
这都是在链表当中使用的变量:
1、头插法:例如输入a,b,c(下面两块分别表示数据域和指针域,^代表NULL)
head-->c next--->b next---->a ^
实现语句(无头结点)
head=NULL
while(循环条件)
{
s= new 定义的结构体名称;(c中用malloc)
s->next=head;
head=s;
}
头插入法的输出顺序与你的输入顺序相反
2、尾插法:(无头结点)
head->a next->b next->c ^
实现:
head=NULL;
rear=head;
while(循环条件)
{
s=new 结构体名;
if(head==NULL)
head=s;
else
rear->next=s;
rear=s;
}
rear->next=NULL
头插入法的输出顺序与你的输入顺序相同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一勺晨露
2009-03-24 · TA获得超过1314个赞
知道小有建树答主
回答量:458
采纳率:0%
帮助的人:242万
展开全部
头指针head可以指向一个没有数据域的结点,也可以指向第一个结点。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
050104010138
2009-03-24 · 超过12用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:21.7万
展开全部
应该是对的!next就是指向后继结点的指针嘛!
其实,只要在做指针修改的时候认真一点儿,链表的问题也不是很复杂!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宇文委座
2009-03-25 · TA获得超过172个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:56.1万
展开全部
楼主你要清楚一点,对于一个单链表,一定要有一个头结点,而头结点里是什么也不放的(清华的书和北航的书都是这么写的),所以h->next=p=q之中h是头结点是合乎这个定义的。h=p=q就变成没有头结点的了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式