重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要为大家展示了“C语言如何实现循环单链表”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言如何实现循环单链表”这篇文章吧。
目前创新互联建站已为上1000+的企业提供了网站建设、域名、雅安服务器托管、网站托管维护、企业网站设计、右玉网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。数据结构 C语言实现循环单链表的实例
实例代码:
//=========杨鑫========================// //循环单链表的实现 #include#include 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语言如何实现循环单链表”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联网站建设公司行业资讯频道!
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。