设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
c语言循环单链表的创建.有句程序不明白高人帮忙指导一下 ...
返回列表
发新帖
c语言循环单链表的创建.有句程序不明白高人帮忙指导一下,十分感谢
[复制链接]
11
|
3
|
2011-7-28 21:46:51
|
显示全部楼层
|
阅读模式
main方法让我省略了,功能是创建 一个循环单链表
#include "malloc.h"
#include "stdio.h"
typedef struct node{
char info;
struct node *next;
}HeadLink;
HeadLink *cyclecreat(){
HeadLink *head,*q,*p;
char c;
head=(HeadLink *)malloc(sizeof(HeadLink));
head->next=head;
/*头指针被下面的指针指向*/
q=head;
/*q指向了头指针*/
while((c=getchar())!='\n'){
p=(HeadLink *)malloc(sizeof(HeadLink));
p->info=c;
if(head->next==head){ /*能否把if的的功能详细的解读一下*/
head->next=p;
q=p;
}
else{
q->next=p;
q=p;
}
}
q->next=head;
return head;
}
void print(HeadLink *tail){
HeadLink *p;
p=tail->next->next;
/*这句程序是什么意思*/
printf("\n");
while(p!=tail->next){
putchar(p->info);
putchar(' ');
p=p->next;
}
putchar('\n');
}
回复
使用道具
举报
千问
|
2011-7-28 21:46:51
|
显示全部楼层
楼主第一个函数是一个数据存储的函数吧先解释下3个指针变量的作用*head:用于保存头文件的指针*p:用于指向当前的下一个地址,只起到临时作用*q:用于保存当前位置的地址函数逻辑是用*head保存头指针,然后先移动*p,如果*p指向的是*head,说明这条链只有一个节点,就是头地址(头指针指向的地址),既然要继续,所以需要if(head->next==head)这句来判断是否*p指向的是头地址;如果不是*p指向的不是头地址,那么*p前移,然后*q也前移,*p一定要比*q先前移,所以*p在*q前面。如果输入完毕了,及输入了回车号,结束输入,然后*q指向头*head。 那个print()函数是用来输出的,输出除了第一个...
回复
使用道具
举报
千问
|
2011-7-28 21:46:51
|
显示全部楼层
p=tail->next->next; 相当于p=(tail->next)->next; tail的next成员的next成员,其他它们都是 node 类型如果tail是当前位置,那么tail->next->next就是获取当前位置往后移动两个位置的地址
希望回答对你有帮助...
回复
使用道具
举报
千问
|
2011-7-28 21:46:51
|
显示全部楼层
if(head->next==head){ /*能否把if的的功能详细的解读一下*/这句很简单啊,就是判断head->next是否等于head,因为你在程序最初定义了head->next=head; ,所以程序第一次循环的时候会判断为真。然后head->next=p;所以head->next不再等于head。 后边的语句是控制循环的,为了...
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行
1
白带发黄是怎么了白带发黄是怎么了
2
输液后两手青紫
3
各位医生好!老婆三十五岁,身高150Cm
4
鼻炎是怎么形成的?怎样快速解决感冒?
5
我末次月经是10月19号我的预产期是多少
6
天天吃短效避孕药影响以后怀孕么!
7
双侧颈部多发低回声结节【考虑淋巴结】
8
小孩一跳头疼这是怎么回事
9
小腹阵痛,白带很多,不痒,无异味,请问是
10
请问医生我经常肚子里胀乞
11
植发后要怎么注意饮食?
12
月经不调这个病是怎么样造成的?
13
冬天零下7度狂犬病毒离开狗嘴存活多长时间
14
起初一个红点,然后痒,最后扩散开来很大得
15
欧兰宁和悉敏有什么不同?
16
后面复查囊实混合性包块之前检查是囊性包块
17
喝明一奶粉有溅奶现象是怎么回事?
18
您好医生,昨天早晨起床去厕所然后用纸擦出
19
宝宝五个月可以吃什么辅食
20
最近老是头晕眼花,反应迟钝。
21
食管癌先放疗过了一个月有化疗现在背疼是怎
22
做破妇产两天了都没有屁放怎么办啊
23
昨天晚上第一次做爱和不认识的人,没带套,
24
我女儿今年7岁有时候喊腿疼,咋回事
25
生完宝宝出了月子来的例假,从来到来完才十
26
便血这是怎么引起的?
27
月经来了,量很少,少的几乎没有!是怎么回
28
喝左旋360咖啡有副作用吗?
29
我家女儿感冒了,但是总发烧应该怎么办?
30
今年体检查出我右肾有0.4cm钙化
31
我的耳朵一个大一个小不是长得一个大
32
我怀孕时得过左肾结石,临生产时做b超时,
33
女儿四个月了,出生时头发很少,替了一次了
34
来月经时味道特别腥臭平时没有
35
腰椎肩盘突出做手术的风险大不
36
您好医生,我四号来的月经九号走了,十七号
37
吃什么药,不影响怀孕
38
我上月21.来月经,推迟3.天了,而且白
39
夜间呕吐,反反复复几年,无法根治。
40
胃炎伴窦部糜烂结节是什么意思
41
我每天都睡不着怎么回事啊
42
吃完饭,坐车头晕,想吐,什么情况
43
腰椎盘移位、畸形能否根治
44
小男孩经常说腿疼,走路不疼
45
天天晚上胃疼的难受,标准的一点左右醒,喘
46
两个补体偏低是啥病系中毒造成
47
月经量不多但天数长
48
龟头长了好多褐色斑点
49
右眼模糊有时觉得眼前有东西在飘
50
前几天和一女的WTXJ现在很害怕很煎熬
51
我的甘油三酯2.47,高密度胆固醇0.7
52
人流后一个月突然腰酸腰疼
53
超声多普勒血流检测(阴茎)
54
我脚底经常是干皮,以前有过脚气,现脚不痒
55
支气管炎会不会演化为支气管癌?
56
多发性胆囊息肉保胆治疗
57
经常自慰射精会导致艾滋病吗?
58
大腿靠近睾丸旁有红红,,,磨到就会痛,,穿内裤也会痛
59
请问包皮过长做手术痛么
60
我膝盖酸痛怎么回事..
61
男生后背长期长痘痘怎么办
62
吃马富隆月经直续十一天留血
63
生完孩子以后阴道会痒的痛
64
你好请问感冒后一直发低烧怎么办?我
65
宝宝吃坏肚子发烧怎么办
66
女性62岁来自附件的低分化浆液性腺癌
67
男朋友以前是乙肝大三阳,现在是乙肝小三阳
68
黑眼圈特别重不管睡不睡觉都有
69
胆碱性荨麻疹吃啥药能治好
70
你好,我患有细菌性阴道病,那老公该配合吃
71
手臂麻木,一直停不下来
72
右侧肩胛骨处疼痛手没劲
73
12月8号停经丄,上月八号来的,今天测的
74
贲门癌术后可以吃炒花生吗
75
哎!感冒好几天了、一直吃着药、鼻子一会儿
76
月经过后两天做爱体外射精了,后来在下个月
77
养肾的话平时做那些按摩比较好
78
刚开始穿高跟鞋长时间站着腿不疼
79
大夫,救我,喉咙卡槟榔刺了
80
刚刚怀孕十天左右,吃了修正双效感昌药,一
81
月经有血块,会不会撑破处女膜,想知道血块
82
嘴角发黑,有点干,很痒忍不住想挠,怎么办
83
你好医生,天气特别热的时候头部出好多汗一
84
慢阻肺病人如何防治感冒?长期使用舒利迭有
85
请问有什么办法使白发变黑
86
42岁,月经不正常吃什么药好?
87
阴道炎怎么去治疗?
88
6岁男童7天没拉大便是怎么回事?
89
胸导管漏水做过手术后还漏怎么办????
90
肠胃总是不太舒服
91
青少年腰椎间盘突出压迫坐骨神经导致腿剧烈
92
输软管屈曲有积水想做试管婴儿
93
美容吃什么好?
94
开放性神经管缺陷有什么办法解决?
95
谢谢大夫能给我治疗的方法
96
羊角风患者该怎么治愈好呢?
97
膝盖从弯曲到伸直时,膝盖出有声响
98
经常左耳嗡嗡响,头痛,颈椎痛,睡眠不好,
99
肾结石如何治疗求帮助
100
怀孕三个月腹部右侧隐隐疼痛正常吗?