日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

单向循环链表C语言实现

發(fā)布時(shí)間:2023/11/30 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 单向循环链表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)????/*建立單鏈表的函數(shù),形參n為人數(shù)*/??
  • {??
  • ????/*?*h保存表頭結(jié)點(diǎn)的指針,*p指向當(dāng)前結(jié)點(diǎn)的前一個(gè)結(jié)點(diǎn),*s指向當(dāng)前結(jié)點(diǎn)*/??
  • ????student?*p,*h,*s;???????
  • ????int?i;??
  • ????if((h=(student?*)malloc(sizeof(student)))==NULL)?/*分配空間并檢測(cè)*/??
  • ????{??
  • ????????printf("不能分配內(nèi)存空間!");??
  • ????????exit(0);??
  • ????}??
  • ????h->name[0]='\0';?????/*把表頭結(jié)點(diǎn)的數(shù)據(jù)域置空*/??
  • ????h->link=NULL;????????/*把表頭結(jié)點(diǎn)的鏈域置空*/??
  • ????p=h;????????????????/*p指向表頭結(jié)點(diǎn)*/??
  • ????for(i=0;i<n;i++)??
  • ????{??
  • ????????if((s=?(student?*)?malloc(sizeof(student)))==NULL)?/*分配新存儲(chǔ)空間并檢測(cè)*/??
  • ????????{??
  • ????????????printf("不能分配內(nèi)存空間!");??
  • ????????????exit(0);??
  • ????????}??
  • ????????p->link=s;?/*把s的地址賦給p所指向的結(jié)點(diǎn)的鏈域,這樣就把p和s所指向的結(jié)點(diǎn)連接起來(lái)了*/??
  • ????????printf("請(qǐng)輸入第%d個(gè)人的姓名",i+1);??
  • ????????//指向結(jié)構(gòu)體中的數(shù)據(jù)???
  • ????????scanf("%s",s->name);??
  • ????????s->link=NULL;??
  • ????????p=s;??
  • ????}??
  • ????//如果是單向鏈表,這里為NULL,環(huán)形鏈表需要指向保存表頭節(jié)點(diǎn)的指針。???
  • ????p->link=h;???
  • ????return(h);??
  • }??
  • ??
  • int?main(void)??
  • {??
  • ????int?number;???
  • ????student?*head;?/*head是保存單鏈表頭結(jié)點(diǎn)地址的指針*/??
  • ????student?*p;??
  • ????printf("請(qǐng)輸入相應(yīng)的人數(shù):\n");??
  • ????scanf("%d",&number);??
  • ????head=creat(number);?/*把所新建的單鏈表頭地址賦給head*/??
  • ????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ò),歡迎將生活随笔推薦給好友。