数据结构二静态链表
来源:互联网 发布:xmind8破解补丁 mac 编辑:程序博客网 时间:2024/05/16 02:44
用数组描述的链表,即称为静态链表,它的表现形式即为结构体数组,结构体变量包括数据域data和指针域next。这种存储结构,仍需要预先分配一个较大的空间,但在作为线性表的插入和删除操作时不需移动元素,仅需修改指针,故仍具有链式存储结构的主要优点。而且在不具有指针类型的高级语言中,无法使用指针类型,也就无法用指针实现单链表结构,所以静态链表是个不错的选择。
静态链表的定义为:
l 顺序表数组中的元素由两个数据域组成:data和next
l Data域用于存储数据
l Next域用于存储下一个元素在数组中的下标
这里介绍静态链表的常用操作:
l 创建静态链表
l 销毁静态链表
l 清空静态链表
l 表元素插入
l 表元素删除
l 获取表中某个位置的元素
l 获取表长度
l 获取表的最大长度
代码总分为三个文件:
StaticList.h : 放置功能函数的声明,以及表和表结点的声明
StaticList.h : 放置功能函数的定义,以及表和表结点的定义
Main.c : 主函数,使用功能函数完成各种需求,不过一般用作测试
这里着重说下获取操作﹑插入操作和删除操作:
获取操作:
获取第pos个元素方法:
首先判断线性表﹑pos位置是否合法
由表头开始通过next指针移动pos次后,当前元素的next域即要获取元素在数组中的下标
插入操作:
如图
插入元素方法:
首先判断线性表﹑插入位置是否合法
在数组中从头开始查找空闲位置index(其实也就是判断每个数组元素的next是否为空闲状态)
由表头开始通过next域移动pos次后,当前元素的next域为要插入的位置
将新元素插入
静态链表长度加1
删除操作:
如图
删除元素方法:
判断表和删除位置是否合法
获取第pos个元素
将第pos个元素从链表中删除
表长度减1
OK! 上代码:
StaticList.h
StaticList.c
Main.c
- 数据结构二静态链表
- 数据结构实验(二) 静态链表
- 【数据结构】静态链表
- 数据结构:静态链表
- 数据结构-静态链表
- 【数据结构】静态链表
- 数据结构:静态链表
- 数据结构:静态链表
- 数据结构--静态链表
- 数据结构-静态链表
- 数据结构实现静态链表
- 【数据结构】静态链表_StaticLinkList
- 数据结构之静态链表
- 数据结构之静态链表
- 数据结构之静态链表
- 数据结构之静态链表
- C静态链表 数据结构!
- 静态链表-数据结构(3)
- LeetCode134 Gas Station
- Multisim注意事项1
- 使用真机进行IOS功能测试代码覆盖率统计
- 新加坡:迈向智慧国家
- 跳跃问题
- 数据结构二静态链表
- 位运算
- python,C#,JAVA字符数组byte[]的MD5
- 打印机共享疑难杂症(不断更新...)
- NSOJ 组合数
- BZOJ 1877: [SDOI2009]晨跑 费用流拆点
- 解决matplotlib库show()方法不显示图片
- 基础入门---springMVC和spring如何web实现下载
- 03_希尔排序(ShellSort)