博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态链表
阅读量:6903 次
发布时间:2019-06-27

本文共 1394 字,大约阅读时间需要 4 分钟。

用数组来描述一个链表

链表的大小是固定的

不能动态申请内存空间

数组首元素的游标指向第一个没有数据的下标地址,不存放数据

数组尾元素的游标指向第一个有数据的下标地址,不存放数据

未使用的数组称为备用链表

数组尾元素相当于头结点

最后一个有数据的元素游标为0

 

 

#include
using namespace std;const int size = 1000;//静态链表的数据结构typedef struct Node{ ElementType data; int cur;}staticLink[size];//初始化静态链表void initiate(staticLink L){ L[0].cur = size - 1; for (int i = 1; i < size - 1; i++) L[i].cur = i + 1; L[size - 1].cur = 0;}//获取备用链表元素位置int Malloc_SLL(staticLink L){ int i = L[0].cur; if (i) { L[0].cur = L[i].cur; } return i;}//静态链表的插入操作void insert(int i, staticLink L, ElementType e){ int k = size-1;//尾节点的位置 int pos = Malloc_SLL(L);//备用链表位置 int j; if (i<1 || i>Listlength(L) + 1) { return ERROR; } if (pos) { L[pos].data = e; for (j = 1; j <= i - 1; j++) k = L[k].cur; } L[pos].cur = L[k].cur; L[k].cur = pos; return OK;}//静态链表删除元素void Delete(int i, staticLink L){ if (i<1 || i>ListLength(L) + 1) return ERROR; int pos = size-1; for (int j = 1; j <= i - 1; j++) pos = L[pos].cur; L[pos].cur = L[L[pos].cur].cur;}//按值查找void Search1(staticLink L, ElementType e){ int pos = L[size - 1].cur; while ((pos > 0) && (pos < size - 1) && L[pos].data != e) { pos = L[pos].cur; } cout << pos << endl;}//按位查找,该位置是游标的位置,而不是下标的位置void Search2(staticLink L, int pos){ int k = size-1; for (int i = 1; i < pos; i++) k = L[k].cur; cout << L[L[k].cur].data << endl;}

  

转载于:https://www.cnblogs.com/KennyRom/p/5895404.html

你可能感兴趣的文章
linux操作系统的分类及解释
查看>>
腾讯大讲堂ppt全集
查看>>
[LeetCode] Design Phone Directory 设计电话目录
查看>>
jquery 里面对数组去重操作-unique
查看>>
使用thrift实现了Javaserver和nodejsclient之间的跨平台通信
查看>>
HUE配置文件hue.ini 的hdfs_clusters模块详解(图文详解)(分HA集群和非HA集群)
查看>>
Delicious Apples (hdu 5303 贪心+枚举)
查看>>
POJ - 2236Wireless Network-并查集
查看>>
shiro 启动异常
查看>>
006-对象—— static关键字 静态属性和方法的使用
查看>>
【.Net+数据库】Unable to convert MySQL date/time value to System.DateTime
查看>>
LNMP添加、删除虚拟主机及伪静态使用教程
查看>>
Secure CRT 自动记录日志log配置
查看>>
130. Surrounded Regions
查看>>
Visual Studio 2015编译wxWidgets
查看>>
class文件魔数CAFEBABE的由来
查看>>
Intellij IDEA 通过数据库表逆向生成带注释的实体类文件超级详细步骤,附详细解决方案...
查看>>
spring 定时任务@Scheduled
查看>>
公众号菜单中的click
查看>>
Windows Phone 实用开发技巧(29):动态绑定Pivot
查看>>