什么是静态链表 文章目录什么是静态链表结构定义初始化查找插入删除什么是静态链表静态链表 用数组模拟链表(用数组的方式实现的链表)普通链表依靠malloc/free在堆上动态分配结点动态链表。静态链表预先开辟一段连续的数组空间数组的每个元素充当结点不用指针使用数组下标游标 cursor模拟指针。适用场景①某些不支持指针的高级语言②数据元素数量固定不变的场景。核心思想用“游标”代替“指针”data存放数据cur游标下一个结点在数组中的下标-1代表结束标记等价于NULL优点增、删操作不需要大量移动元素。缺点不能随机存取只能从头结点开始依次往后查找容量固定不可变。结构定义#includestdio.h#defineMAXSIZE100// 静态链表的最大长度// 静态链表节点结构typedefstruct{intdata;// 数据域intcur;// 游标Cursor为 0 时表示 NULL指向下一个节点的数组下标}SLinkList[MAXSIZE];// 此时 SLinkList 就是一个长度为 MAXSIZE 的结构体数组// 另一种写法 与上面等价typedefstructNode{intdata;intcur;};typedefstructNodeSLinkList[MAXSIZE]SLinkList[MAXSIZE];等价于typedef struct Node SLinkList[MAXSIZE],这是可用SLinkList定义“一个长度为MAXSIZE的Node型数组”。// 这两种也是等价的SLinkList a;// a 是一个静态链表structNodea[MAXSIZE];// a 是一个Node型数组初始化// 初始化备用链表将所有空闲节点连接起来voidInitList(SLinkList space){// i 从 0 循环到 MAXSIZE - 2for(inti0;iMAXSIZE-1;i){space[i].curi1;// 每个节点指向下一个节点的下标space[i].data-2;// -2 表示为空结点}space[MAXSIZE-1].cur-1;// 最后一个节点的 cur 为 -1表示 NULL,结束}查找从头结点出发挨个往后遍历节点时间复杂度为O(n)。插入①找到一个空的结点存入数据元素如何判断结点是否为空可让next(即cur)为某个特殊值如-2②从头结点出发找到位序为i-1的结点③修改新结点的next(即cur)④修改i-1号结点的next(即cur)删除①从头结点出发找到前驱结点②修改前驱结点 的游标③被删除结点的next(即cur)设为-2表示空结点

相关新闻

最新新闻

PrusaSlicer终极安装指南:5分钟搞定专业3D打印切片软件

PrusaSlicer终极安装指南:5分钟搞定专业3D打印切片软件

PrusaSlicer终极安装指南:5分钟搞定专业3D打印切片软件 【免费下载链接】PrusaSlicer G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.) 项目地址: https://gitcode.com/gh_mirrors/pr/PrusaSlicer 想要将你的3D创意变为现实&#xff0…

2026/7/17 15:38:37
Adaptive Dialogs高级技巧:用botbuilder-js实现智能上下文感知对话

Adaptive Dialogs高级技巧:用botbuilder-js实现智能上下文感知对话

Adaptive Dialogs高级技巧:用botbuilder-js实现智能上下文感知对话 【免费下载链接】botbuilder-js Welcome to the Bot Framework SDK for JavaScript repository, which is the home for the libraries and packages that enable developers to build sophisticat…

2026/7/17 15:38:37
Agith配置文件详解:10个关键参数优化监控性能

Agith配置文件详解:10个关键参数优化监控性能

Agith配置文件详解:10个关键参数优化监控性能 【免费下载链接】Agith linux command influence analysis 项目地址: https://gitcode.com/openeuler/Agith 前往项目官网免费下载:https://ar.openeuler.org/ar/ Agith作为一款强大的Linux命令影响…

2026/7/17 15:38:37
OpenEuler社区管理利器:工具集合项目概览与核心功能介绍

OpenEuler社区管理利器:工具集合项目概览与核心功能介绍

OpenEuler社区管理利器:工具集合项目概览与核心功能介绍 【免费下载链接】tool-collections A collection of infrastructure tools 项目地址: https://gitcode.com/openeuler/tool-collections 前往项目官网免费下载:https://ar.openeuler.org/a…

2026/7/17 15:38:37
3分钟掌握BilibiliUploader:B站视频自动投稿的终极解决方案

3分钟掌握BilibiliUploader:B站视频自动投稿的终极解决方案

3分钟掌握BilibiliUploader:B站视频自动投稿的终极解决方案 【免费下载链接】BilibiliUploader 模拟Bilibili windows投稿客户端 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliUploader 还在为B站视频上传的繁琐流程而烦恼吗?每次都要手…

2026/7/17 15:38:37
英雄联盟对局实力预判工具:在游戏开始前洞察胜负关键

英雄联盟对局实力预判工具:在游戏开始前洞察胜负关键

英雄联盟对局实力预判工具:在游戏开始前洞察胜负关键 【免费下载链接】hh-lol-prophet lol 对局先知 上等马 牛马分析程序 选人阶段判断己方大爹 大坑, 明确对局目标 基于lol client api 合法不封号 项目地址: https://gitcode.com/gh_mirrors/hh/hh-lol-prophet …

2026/7/17 15:33:37

月新闻