C语言:循环链表的建立和输出 您所在的位置:网站首页 数据结构创建链表并输入 C语言:循环链表的建立和输出

C语言:循环链表的建立和输出

2024-02-21 14:15| 来源: 网络整理| 查看: 265

有头结点的循环链表建立和单链表的建立基本一样,只不过在链表创建结束时,将尾结点指向头指针,无头结点链表的建立,只要将尾结点的指针指向头结点的下一个指针便可,但一般循环链表都以有头结点的方式创建,这样空链表与非空链表处理就一致了

有头结点循环链表的建立和输出:*

#include #include struct random_num{ int num; struct random_num*next; }; void main(){ int n,i; struct random_num *head=NULL,*p1,*p2,*p3;//head:头结点,*p1:作为开辟新节点的接受指针,*p2工作指针,主要起连接作用,*p3用于输出链表时的工作指针 srand(time(0)); //srand随机产生数的种子,time(0)返回当前日历时间 if((head=(struct random_num *)malloc(sizeof(struct random_num)))==NULL) { //开辟头结点 printf("不能分配存储空间!"); exit(0); } p2=head; // 令p2=head,以便接下来连接 printf("请输入需要建立链表结点数:\n"); scanf("%d",&n); for(i=1;i printf("不能成功分配空间:"); exit(0); } p1->num=rand(); p2->next=p1; p2=p1; } p2->next=head; //以下操作只为输出,由于不用函数调用,便直接进行操作,可视为一个调用函数,但脑部相应变量定义 p3=head->next; //因为头指针没有值,所以p3指向头指针的下一个位置 while(p3!=head){ printf("%d\n",p3->num); p3=p3->next; } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有