c语言单链表怎么循环链表,链表之循环单链表(用C语言描述)

上回说到建立链表的三种形式,分别是头插法,尾插法,和尾插法MAX??

??下面讲一下循环单链表??

循环单链表,字面意思,就是单链表循环了起来,尾节点在输入结束后不会指向NULL,而是指向了头节点head

酱紫,链表就循环了起来

下面是代码实现

#include

#include

typedef char datatype;

typedef struct node

{

datatype data;

struct node *next;

int length;

}linkList;

linkList *CREAT(linkList *L)

{

L->length = 0;

linkList *head,*r,*s;

head = (linkList *)malloc(sizeof(linkList));

r = head;

char ch;

ch = getchar();

while(ch!=‘$‘)

{

s = (linkList *)malloc(sizeof(linkList));

L->length++;

s->data = ch;

r->next = s;

r = s;

s->next = head;

//        char a = getchar();

//        如果使用上面这一句,在输入data的时候可以在两个字符间输入空格

ch = getchar();

};

return r;

}

void PUT(linkList *L,linkList *r)

{

int i = 0;

linkList *pt;

pt = r;

pt = pt->next->next;

while(ilength)

//如果你想测试一下自己写的代码会不会循环起来,可以给length+2以上,看看会不会输出

//因为在CREAT()的时候,我是用的是尾插法MAX??,就是在整个链表的前面加上一个空的节点,所以输出不会显示这个节点的内容

{

printf("%c ",pt->data);

pt = pt->next;

i++;

};

printf("\n");

}

int main(void)

{

linkList L;

PUT(&L,CREAT(&L));

return 0;

}

//这个代码的算法实现都是比较简单易懂的,如果不是很清楚链表是怎样构建的话,可以康一康我的上一篇blog

//希望能对初学数据结构的同学们有一点帮助

原文:https://www.cnblogs.com/farytormenta/p/11601054.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值