c语言单链表问题

1单链表的建立#include<stdio.h>#include<stdlib.h>structplist{inti;structplist*next;};structp... 1 单链表的建立

#include <stdio.h>
#include <stdlib.h>
struct plist
{
int i;
struct plist *next;
};

struct plist *creat(){
struct plist *head,*end,*temp;
int num;
printf("请输入数字");
scanf("%d",&num);
head=(struct plist *)malloc(sizeof(struct plist));
end=head;!!!!!!!!!!!!明明没有对head进行操作,怎么返回的head还能指向end开始的单链表呢?后面函数返回的是head,想不通哎。难道说这里的head和end的地址一样?那不矛盾了赛,end=head到底什么意思?以上问题求解。。。

while(num){
temp=(struct plist *)malloc(sizeof(struct plist));
temp->i=num;
temp->next=NULL;

end->next=temp;
end=end->next;

printf("请输入数字");
scanf("%d",&num);

}
return head;

} int main()
{
struct plist *pp,*p;//(定义访问单链表的指针)
pp=creat();//(调用创建单链表的函数,使pp为函数的返回值 即单链表表头)
p=pp->next;
while(p)//(显示单链表的内容)
{
printf("%d",p->i);
p=p->next;

}

return 0;
}
展开
 我来答
匿名用户
2013-12-28
展开全部
#include <stdio.h>
#include <stdlib.h>
struct plist
{
int i;
struct plist *next;
};

struct plist *creat(){
struct plist *head,*end,*temp;
int num;
printf("请输入数字 ");
scanf("%d",&num);
head=(struct plist *)malloc(sizeof(struct plist)); //*******************************************
end=head; //意思是 end指针指向head 头结点,然后,用end指针向后移动,给head链表增加节点

while(num){
temp=(struct plist *)malloc(sizeof(struct plist));
temp->i=num;
temp->next=NULL;

end->next=temp;
end=end->next;

printf("请输入数字 ");
scanf("%d",&num);

}
return head; //*****************************************************
//执行完后返回头指针 ,end 没有用了
}

int main()
{
struct plist *pp,*p;//(定义访问单链表的指针)
pp=creat();//(调用创建单链表的函数,使pp为函数的返回值 即单链表表头)
p=pp->next;
while(p)//(显示单链表的内容)
{
printf("%d",p->i);
p=p->next;

}

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-28
展开全部
变量end和head都是结构体指针变量,所存储的是地址,end=head,就是把head的地址传递给end,此时end指向的存储空间和head指向的是一样的,所以对end操作也就是对head指向的存储空间操作,这里没有变量end而直接用head也是可以的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-28
展开全部
楼上的回答很优秀,结构体指针变量存取的就是地址,但是这里不能直接对head进行操作,因为以后要返回,所以借用end来操作,而head保存头结点地址,以便访问函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式