C语言数据结构之循环链表的简单实例

发布时间 - 2026-01-11 02:03:56    点击率:

 C语言数据结构之循环链表的简单实例

实例代码:

# include <stdio.h>
# include <stdlib.h>
typedef struct node //定义链表中结点的结构
{
 int code; 
 struct node *next;
}NODE,*LinkList; 

/*错误信息输出函数*/
void Error(char *message)
{
 fprintf(stderr,"Error:%s/n",message);
 exit(1);
}

//创建循环链表
LinkList createList(int n)
{
 LinkList head; //头结点
 LinkList p; //当前创建的节点
 LinkList tail; //尾节点
 int i;
 head=(NODE *)malloc(sizeof(NODE));//创建循环链表的头节点
 if(!head)
 {
 Error("memory allocation error!/n");
 }
 head->code=1;
 head->next=head;
 tail=head;
 for(i=2;i<n;i++)
 {
 //创建循环链表的节点
 p=(NODE *)malloc(sizeof(NODE));
 tail->next=p;
 p->code=i;
 p->next=head;
 tail=p;
 }
 return head;
}

第二种方法:

//创建循环链表方法2(软件设计师教程书上的方法)
LinkList createList2(int n)
{
 LinkList head,p;
 int i;
 head=(NODE *)malloc(sizeof(NODE));
 if(!head)
 {
 printf("memory allocation error/n");
 exit(1);
 }
 head->code=1;
 head->next=head;
 for(i=n;i>1;--i)
 {
 p=(NODE *)malloc(sizeof(NODE));
 if(!p)
 {
  printf("memory allocation error!/n");
  exit(1);
 }
 p->code=i;
 p->next=head->next;
 head->next=p;
 }
 return head;
}


void output(LinkList head)
{
 LinkList p;
 p=head;
 do
 {
 printf("%4d",p->code);
 p=p->next;
 }
 while(p!=head);
 printf("/n");
}

void main(void)
{
 LinkList head;
 int n;
 printf("input a number:");
 scanf("%d",&n);
 head=createList(n);
 output(head);
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C语言数据结构之循环链表  # 循环链表  # C  # 实现循环链表的方法  # C语言实现循环链表  # C语言基于循环链表解决约瑟夫环问题的方法示例  # C语言数据结构之判断循环链表空与满  # C语言数据结构之双向循环链表的实例  # C语言中双向链表和双向循环链表详解  # C语言单循环链表的表示与实现实例详解  # C语言实现带头双向循环链表的接口  # 链表  # 数据结构  # 希望能  # 种方法  # 谢谢大家  # 错误信息  # 书上  # stdlib  # node  # struct  # typedef  # LinkList  # void 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用PHP快速搭建CMS系统?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  制作旅游网站html,怎样注册旅游网站?  Linux网络带宽限制_tc配置实践解析【教程】  如何在Windows 2008云服务器安全搭建网站?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  如何在Windows环境下新建FTP站点并设置权限?  如何在VPS电脑上快速搭建网站?  利用JavaScript实现拖拽改变元素大小  大同网页,大同瑞慈医院官网?  JavaScript如何实现音频处理_Web Audio API如何工作?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  教学论文网站制作软件有哪些,写论文用什么软件 ?  打造顶配客厅影院,这份100寸电视推荐名单请查收  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  郑州企业网站制作公司,郑州招聘网站有哪些?  微信小程序 闭包写法详细介绍  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何破解联通资金短缺导致的基站建设难题?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  WordPress 子目录安装中正确处理脚本路径的完整指南  如何快速启动建站代理加盟业务?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  如何用5美元大硬盘VPS安全高效搭建个人网站?  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel怎么清理缓存_Laravel optimize clear命令详解  如何彻底卸载建站之星软件?  如何做网站制作流程,*游戏网站怎么搭建?  非常酷的网站设计制作软件,酷培ai教育官方网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  JavaScript实现Fly Bird小游戏  javascript日期怎么处理_如何格式化输出  IOS倒计时设置UIButton标题title的抖动问题  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  怎样使用JSON进行数据交换_它有什么限制  如何在腾讯云免费申请建站?  长沙企业网站制作哪家好,长沙水业集团官方网站?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  网站优化排名时,需要考虑哪些问题呢?  公司网站制作价格怎么算,公司办个官网需要多少钱?  Python进程池调度策略_任务分发说明【指导】  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  如何在万网利用已有域名快速建站?  百度浏览器如何管理插件 百度浏览器插件管理方法