我們都知道,單向鍊錶最後指向為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 鍊錶遍歷...