上回说到建立链表的三种形式,分别是头插法,尾插法,和尾插法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

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

  1. [C语言实现]带你手撕带头循环双链表

    目录 什么是双链表? 带头结点的优势: 双链表的实现: 什么是循环双链表? 众所周知,顺序表的插入和删除有时候需要大量移动数据,并且每次开辟空间都可能会浪费大量内存和CPU资源,于是我们有了链表,我们 ...

  2. 循环链表详解(循环单链表/循环双链表)

    目录 一.循环单链表 二.循环双链表 一.循环单链表 循环单链表的表尾结点的next指针总是指向头结点.  所以在初始化循环单链表的时候,需要记得将头结点的next指针指向头结点自己: 判断循环单链表 ...

  3. java循环单链表比较相等_java的循环单链表

    packageclink;//循环单链表 public classTestClink {public static voidmain(String[] args) {//TODO Auto-gener ...

  4. 数据结构之线性表----一文看懂顺序表、单链表、双链表、循环链表

    ​ 线性表是数据结构中比较基础的内容,不过也是入门的所需要客服的第一个难关.因为从这里开始,就需要我们动手编程,这就对很多同学的动手能力提出了挑战.不过这些都是我们需要克服的阵痛,学习新的知识总是痛苦 ...

  5. 线性表的链式存储结构及代码实现(单链表,双链表,循环链表)

      在上一篇博文中介绍了线性表的顺序存储方式,它最大的缺点就是在插入和删除操作时会移动大量的元素,这显然会耗费很多时间.后来人们便想到了用链式存储方式来解决上面这一问题.链式存储线性表时,不需要使用地 ...

  6. 循环链表(循环单链表和双链表)

    循环链表 前言 一.循环单链表的初始化 二.判断是否为空或表尾结点 三.循环双链表的初始化 四.循环双链表的插入与删除 前言 对于循环单链表而言,在进行插入和删除时,可以让指针指向尾部,对于表头(通过 ...

  7. 【数据结构】循环单链表的实现(C语言)

    循环单链表应掌握以下基本操作: 1.建立一个空的循环单链表. 2.获得循环单链表的最后一个结点的位置. 3.输出循环单链表中各结点的值. 4.在循环单链表中查找值为x的结点. 5.在循环单链表中第i个 ...

  8. python定义链表节点_Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】...

    本文实例讲述了Python数据结构与算法之链表定义与用法.分享给大家供大家参考,具体如下: 本文将为大家讲解: (1)从链表节点的定义开始,以类的方式,面向对象的思想进行链表的设计 (2)链表类插入和 ...

  9. 线性表文档之循环单链表

    循环单链表 定义 概念 循环单链表是在单链表的基础上,将链表最后一个结点的 next 指针域指向了链表的第一个结点(如果单链表是带头结点的则最后一个结点的 next 指针域指向头结点:如果单链表是不带 ...

  10. 线性表文档之循环双链表

    循环双链表 定义 概念 循环双链表就是在双链表的基础上,见链表的尾结点和链表的第一个结点连接起来,形成一个循环. 如果是带头结点的循环双链表,则将链表的尾结点的 next 指针指向链表的头结点,将链表 ...

最新文章

  1. 09Mybatis_入门程序——删除用户以及更新用户
  2. 一款java代码生成器(我受够了加班),走起!
  3. JPA实体锁定模式的差异
  4. [赵星理]《简单男人》--歌曲温暖你的心,激励你前进
  5. 基于SSM+MySQL的实现的汽车门店管理平台系统
  6. 除了PS,这几款设计软件也是我的最爱
  7. 双十一,咪蒙广告位为何供不应求?
  8. 基于WIFI连接MAC绑定的点名及数据挖掘探究
  9. Android手机存储路径
  10. 苹果免密支付怎么关闭_有人苹果手机被盗刷了!那是设置有问题...
  11. Quartus-建立新工程
  12. git 相关文件指令随笔
  13. irq: nobody cared (try booting with the “irqpoll” option)
  14. html语言加图片,html代码——给图片加边框代码
  15. 使用avue图标选择器出现图标无法显示解决
  16. 强袭自由高达,我的第一个作品
  17. a到z的ascii码值是多少_a和A对应的ASCII码数值分别是多少啊?
  18. 虚拟机安装windows10
  19. 详解jsPlumb这个javascript的可拖动连线库
  20. CDH安装指南(Centos6)

热门文章

  1. 如何快速清空一个文件内容
  2. 如何在mysql查询结果集中得到记录行号_如何在MySQL查询结果集中得到记录行号...
  3. setdate java_在PreparedStatement中使用setDate
  4. java 驼峰自动映射_总结springboot开启mybatis驼峰命名自动映射的三种方式
  5. 曼彻斯特编码_网络工程师考点集锦(数字编码和编码效率)
  6. win7 mysql zip包如何安装_MySql 5.7.31 win7 Zip压缩包配置教程
  7. ubuntu 18.04.1安装hadoop3.1.2
  8. [转载]----Hadoop2.0命令手册
  9. SpringSecurity初步理解
  10. Study 3 —— Python运算符