数据结构 C语言实现循环单链表的实例
发布时间:2020-12-16 05:10:57 所属栏目:百科 来源:网络整理
导读:数据结构 C语言实现循环单链表的实例 实例代码: //=========杨鑫========================// //循环单链表的实现 #include stdio.h #include stdlib.h typedef int ElemType; //定义结点类型 typedef struct Node { ElemType data; struct Node *next; }Nod
数据结构 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; } 如图: 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |