生活随笔
收集整理的這篇文章主要介紹了
单向循环链表C语言实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://blog.csdn.net/morixinguan/article/details/51771633
我們都知道,單向鏈表最后指向?yàn)镹ULL,也就是為空,那單向循環(huán)鏈表就是不指向?yàn)镹ULL了,指向頭節(jié)點(diǎn),所以下面這個(gè)程序運(yùn)行結(jié)果就是,你將會(huì)看到遍歷鏈表的時(shí)候就是一個(gè)死循環(huán),因?yàn)樗恢赶驗(yàn)镹ULL,也是周而復(fù)始的執(zhí)行。串成了一個(gè)環(huán)型。
? ? ?
[cpp]?view plaincopy print?
#include?<stdio.h>?? #include?<stdlib.h>?? typedef?struct?node?? {?? ????char?name[20];?? ????struct?node?*link;?? }student;?? ?? student?*?creat(int?n)?????? {?? ?????? ????student?*p,*h,*s;??????? ????int?i;?? ????if((h=(student?*)malloc(sizeof(student)))==NULL)??? ????{?? ????????printf("不能分配內(nèi)存空間!");?? ????????exit(0);?? ????}?? ????h->name[0]='\0';??????? ????h->link=NULL;?????????? ????p=h;?????????????????? ????for(i=0;i<n;i++)?? ????{?? ????????if((s=?(student?*)?malloc(sizeof(student)))==NULL)??? ????????{?? ????????????printf("不能分配內(nèi)存空間!");?? ????????????exit(0);?? ????????}?? ????????p->link=s;??? ????????printf("請(qǐng)輸入第%d個(gè)人的姓名",i+1);?? ?????????? ????????scanf("%s",s->name);?? ????????s->link=NULL;?? ????????p=s;?? ????}?? ?????? ????p->link=h;??? ????return(h);?? }?? ?? int?main(void)?? {?? ????int?number;??? ????student?*head;??? ????student?*p;?? ????printf("請(qǐng)輸入相應(yīng)的人數(shù):\n");?? ????scanf("%d",&number);?? ????head=creat(number);??? ????p=head;?? ????while(p->link)?? ????{?? ????????printf("%s\n",p->name);?? ????????p=p->link;?? ????}?? ?? ????return?0?;?? }??
運(yùn)行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的单向循环链表C语言实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。