什么是静态链表 文章目录什么是静态链表结构定义初始化查找插入删除什么是静态链表静态链表 用数组模拟链表(用数组的方式实现的链表)普通链表依靠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表示空结点

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/25 12:45:43
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/24 14:25:52
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/24 14:49:33
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/23 8:01:38
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 14:28:18
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/25 15:49:36

日新闻

周新闻