简单易懂的数据结构和算法--《啊哈!算法》--链表(数组实现)

这篇博客是基于《啊哈!算法》一书整理的数据结构与算法学习笔记,主要介绍了如何用数组实现链表。文章提供了完整的代码实现,并给出了验证数据和预期运行结果,帮助读者深入理解链表操作。
摘要由CSDN通过智能技术生成

导叙:根据啊哈磊老师的《啊哈!算法》整理的学习笔记,如有侵权,联系删除
图书链接:https://pan.baidu.com/s/18qNteKTnKJJpdo7Dks50FA
提取码:ym1t
关注微信公众“伊斯电子编程”获取更多资源

在这里插入图片描述
完整的代码实现如下

#include <stdio.h> 
int main() 
{ 
 int data[101],right[101];
  int i,n,t,len; 
 //读入已有的数 
 scanf("%d",&n); 
 for(i=1;i<=n;i++) 
 scanf("%d",&data[i]); 
 len=n; 
 //初始化数组right 
 for(i=1;i<=n;i++) 
 { 
 if(i!=n) 
 right[i]=i+1; 
 else 
 right[i]=0; 
 } 
 //直接在数组data的末尾增加一个数 
 len++; 
 scanf("%d",&data[len]); 
 
 //从链表的头部开始遍历 
 t=1; 
 while(t!=0) 
 { 
 if(data[right[t]]>data[len])//如果当前结点下一个结点的值大于待插入数,将
数插入到中间 
 { 
 right[len]=right[t];//新插入数的下一个结点标号等于当前结点的下一个结
点编号 
 right[t]=len;//当前结点的下一个结点编号就是新插入数的编号 
 break;//插入完成跳出循环 
 } 
 t=right[t]; 
 } 
 //输出链表中所有的数 
 t=1; 
 while(t!=0) 
 { 
 printf("%d ",data[t]); 
 t=right[t]; 
 }
  getchar(); 
 getchar(); 
 return 0; 
}

可以输入以下数据进行验证。
9
2 3 5 8 9 10 18 26 32
6
运行结果是:
2 3 5 6 8 9 10 18 26 32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值