码迷,mamicode.com
首页 > 编程语言 > 详细

链表之循环单链表(用C语言描述)

时间:2019-09-28 01:18:48      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:测试   while   循环   数据结构   color   har   main   max   描述   

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

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

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

酱紫,链表就循环了起来

下面是代码实现

#include <stdio.h>

#include <stdlib.h>

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(i<L->length)

//如果你想测试一下自己写的代码会不会循环起来,可以给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

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

链表之循环单链表(用C语言描述)

标签:测试   while   循环   数据结构   color   har   main   max   描述   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!