單向迴圈鍊錶C語言實現

2021-09-23 01:16:03 字數 760 閱讀 3505

我們都知道,單向鍊錶最後指向為null,也就是為空,那單向迴圈鍊錶就是不指向為null了,指向頭節點,所以下面這個程式執行結果就是,你將會看到遍歷鍊錶的時候就是乙個死迴圈,因為它不指向為null,也是周而復始的執行。串成了乙個環型。

#include #include typedef struct node

student;

student * creat(int n) /*建立單鏈表的函式,形參n為人數*/

h->name[0]='\0'; /*把表頭結點的資料域置空*/

h->link=null; /*把表頭結點的鏈域置空*/

p=h; /*p指向表頭結點*/

for(i=0;ilink=s; /*把s的位址賦給p所指向的結點的鏈域,這樣就把p和s所指向的結點連線起來了*/

printf("請輸入第%d個人的姓名",i+1);

//指向結構體中的資料

scanf("%s",s->name);

s->link=null;

p=s;

} //如果是單向鍊錶,這裡為null,環形鍊錶需要指向儲存表頭節點的指標。

p->link=h;

return(h);

}int main(void)

return 0 ;

}

執行結果:

C語言實現的單向鍊錶

file gm slink.h brief 提供了常用的單向鍊錶操作介面 author don hao date 2011 8 21 9 38 03 version email hao.limin gmail.com company modification write modifications ...

c語言實現迴圈鍊錶

迴圈鍊錶的建立其實並不複雜,只需要在建立單鏈表時定義乙個節點 本文章中為s 參與迴圈找到尾節點然後讓其指向頭節點的下乙個 因為第乙個節點時沒有值的 在之後的遍歷中則需要使用do while迴圈因為跳躍了第乙個節點在我們遍歷時新的第乙個節點是有值的,之後的插入刪除查詢操作,則是在原文的基礎上刪除了迴圈...

C語言實現雙向迴圈鍊錶

list 雙向迴圈鍊錶,帶頭指標 struct list node 初始化頭指標 void list init head struct list node head 量表是否為空 是返回1,否返回0 int list is empty const struct list node head 鍊錶遍歷...