您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章主要为大家展示了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。