C语言数据结构循环单链表,数据结构 C语言实现循环单链表的实例

数据结构 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;

}

如图:

2e975e5ec50f8bffdc019b3256aa2c20.png

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值