数据结构 C语言实现循环单链表的实例
更新时间:2017年05月10日 11:39:11 投稿:lqh
这篇文章主要介绍了数据结构 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++中Overload,Override,Hide之间的区别
重载overload,这个概念是大家熟知的。在同一可访问区内被声名的几个具有不同参数列的(参数的类型、个数、顺序不同)同名函数,程序会根据不同的参数列来确定具体调用哪个函数,这种机制就是重载2013-09-09
C++ Boost Serialization库超详细奖金额
Boost是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一,是为C++语言标准库提供扩展的一些C++程序库的总称2022-12-12
浅析C++中strlen函数的使用与模拟实现strlen的方法
这篇文章主要介绍了strlen函数的使用与模拟实现strlen的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
win10环境下C++ vs2015编译opencv249的教程
这篇文章主要介绍了win10环境下C++ vs2015编译opencv249的教程,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-03-03


最新评论