循环单链表的c语言实现

 1 /**
 2  * 循环单链表的实现
 3  */
 4 #include <stdio.h>
 5 #include <stdlib.h>
 6 
 7 typedef struct List {
 8     int data;
 9     struct List *pNext;
10 } *List;
11 
12 /**
13  * 初始化一个头节点然后用一个局部变量来连接新节点和头部
14  * 最后局部变量将尾节点接至头节点
15  * @param num创建数量
16  * @return 头节点
17  */
18 List init(int num) {
19     List head = (List *) malloc(sizeof(List));
20     head->data = 0;
21     head->pNext = NULL;
22     List cycle = head;
23 
24     for (int i = 1; i <= num; ++i) {
25         List body = (List *) malloc(sizeof(List));
26         body->data = i;
27         body->pNext = NULL;
28         cycle->pNext = body;
29         cycle = cycle->pNext;
30     }
31     cycle->pNext = head;
32     return head;
33 }
34 
35 void print(List L) {
36     List temp;
37     temp = L;
38     while (temp->pNext != L) {
39         printf("%d", temp->data);
40         temp = temp->pNext;
41     }
42 }
43 
44 int main() {
45     List L;
46     L = init(8);
47     print(L);
48     return 0;
49 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学五年级在读的蒟蒻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值