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


相关推荐: 如何在阿里云高效完成企业建站全流程?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  JavaScript如何实现继承_有哪些常用方法  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  网站制作报价单模板图片,小松挖机官方网站报价?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  制作公司内部网站有哪些,内网如何建网站?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  如何构建满足综合性能需求的优质建站方案?  详解jQuery停止动画——stop()方法的使用  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  如何快速登录WAP自助建站平台?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  怎么用AI帮你设计一套个性化的手机App图标?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何实现建站之星域名转发设置?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  如何快速搭建高效WAP手机网站吸引移动用户?  如何确保西部建站助手FTP传输的安全性?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  如何做网站制作流程,*游戏网站怎么搭建?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  利用JavaScript实现拖拽改变元素大小  ,交易猫的商品怎么发布到网站上去?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Laravel怎么实现模型属性的自动加密  如何在云服务器上快速搭建个人网站?  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何正确选择百度移动适配建站域名?  个人网站制作流程图片大全,个人网站如何注销?  Python文件流缓冲机制_IO性能解析【教程】  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel如何使用Livewire构建动态组件?(入门代码)  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  如何批量查询域名的建站时间记录?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道