标题:关于数据结构单链表的一些问题(建立一个带头结点的元素值递增有序的单链表 ...
只看楼主
来学C语言啊
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-9-17
结帖率:50%
已结贴  问题点数:10 回复次数:5 
关于数据结构单链表的一些问题(建立一个带头结点的元素值递增有序的单链表)
啊啊啊啊啊啊啊!!!!!!!书上就那么几页,我翻来覆去的看了几篇,还是没搞明白,晕啊
题目是:建立一个带头结点的元素值递增有序的单链表。
P和q到底代表什么,有点晕啊。求高人详解啊,最好能画个简单的示意图.............
typedef struct node{
char data;
strcut node *next;
}LINKLIST;
LINKLIST *creat(LINKLIST *head)
{
LINKLIST *t,*p,*q;
char ch;
t=(LINKLIST*)malloc(sizeof(LINKLIST));
head=t;t->next=NULL;
while((ch=getchar())!=‘$')
{
t=(LINKLIST*)malloc(sizeof(LINKLIST));
t->data=ch;q=head;p=head->next;
while(p!=NULL&&p->data<=ch)
{q=p;p=p->next;}
q->next=t;t->next=p;
}
return (head);
}
示意图.rar (4.51 KB)


[ 本帖最后由 来学C语言啊 于 2011-9-17 21:23 编辑 ]
搜索更多相关主题的帖子: 示意图 元素 最好 
2011-09-17 19:32
来学C语言啊
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-9-17
得分:0 
LINKLIST *creat(LINKLIST *head)
{
LINKLIST *t,*p,*q;
char ch;
t=(LINKLIST*)malloc(sizeof(LINKLIST)); //建立表头结点
head=t;t->next=NULL;                      //head→【头结点】【NULL】
while((ch=getchar())!=‘$')
{
t=(LINKLIST*)malloc(sizeof(LINKLIST)); // 【t】【】
t->data=ch;q=head;p=head->next;  //【ch】【】这个q=head怎么理解啊?难道变成了q→【头结点】【NULL】
while(p!=NULL&&p->data<=ch)
{q=p;p=p->next;}
q->next=t;t->next=p;
}
return (head);
2011-09-17 19:42
来学C语言啊
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-9-17
得分:0 
2011-09-17 19:48
来学C语言啊
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-9-17
得分:0 
我画了个图啊,求好心人帮忙解惑啊!!
2011-09-17 21:23
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:10 
头结点
头指针


结点前插
结点后插(尾部)

q 的功能就是标记 保证每次从头结点开始, 找到接受的数据要安置(插入)的位置,反过来想想 没有q会是怎样的场景,也许这样会更加容易理解吧
2011-09-17 21:54
来学C语言啊
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-9-17
得分:0 
回复 5楼 寒风中的细雨
根据你的提示加上百度的一个好心人的问答,我终于明白了,可是困惑了一晚上啊!
haha.rar (7.45 KB)

随便画了一个示意图,要是有和我一样的困惑的可以看看。
感谢国家!感谢版主!感谢好心人!
可以安心睡觉了
2011-09-17 23:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-350175-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.385442 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved