您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C語言如何實現循環單鏈表”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C語言如何實現循環單鏈表”這篇文章吧。
數據結構 C語言實現循環單鏈表的實例
實例代碼:
//=========楊鑫========================// //循環單鏈表的實現 #include <stdio.h> #include <stdlib.h> typedef int ElemType; //定義結點類型 typedef struct Node { ElemType data; struct Node *next; }Node,*LinkedList; int count = 0; //1、單循環鏈表的初始化 LinkedList init_circular_linkedlist() { Node *L; L = (Node *)malloc(sizeof(Node)); if(L == NULL) printf("申請內存空間失敗\n"); L->next = L; } //2、循環單鏈表的建立 LinkedList creat_circular_linkedlist() { Node *L; L = (Node *)malloc(sizeof(Node)); L->next = L; Node *r; r = L; ElemType x; while(scanf("%d",&x)) { if(x == 0) break; count++; Node *p; p = (Node *)malloc(sizeof(Node)); p->data = x; r->next = p; r = p; } r->next = L; return L; } //4、循環單鏈表的插入,在循環鏈表的第i個位置插入x的元素 LinkedList insert_circuler_linkedlist(LinkedList L,int i,ElemType x) { Node *pre; pre = L; int tempi = 0; for (tempi = 1; tempi < i; tempi++) pre = pre->next; Node *p; p = (Node *)malloc(sizeof(Node)); p->data = x; p->next = pre->next; pre->next = p; return L; } //5、循環單鏈表的刪除,在循環鏈表中刪除值為x的元素 LinkedList delete_circular_linkedlist(LinkedList L,ElemType x) { Node *p,*pre; p = L->next; while(p->data != x) { pre = p; p = p->next; } pre->next = p->next; free(p); return L; } int main() { int i; LinkedList list, start; printf("請輸入循環單鏈表的數據, 以0結束!\n"); list = creat_circular_linkedlist(); printf("循環單鏈表的元素有:\n"); for(start = list->next; start != NULL; start = start->next) { if(count== 0) { break; } printf("%d ", start->data); count--; } printf("\n"); return 0; }
如圖:
以上是“C語言如何實現循環單鏈表”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。