24.8.3数据结构|双向循环链表、静态链表

双向循环链表

节点类型与双链表的节点类型完全相同双向循环链表的操作也与双链表的操作基本一致。

例题

将自然数一到N按由小到大的顺序沿顺时针方向围成一个圈,然后以一为起点先沿顺时针方向数到第N个数将其划去,再沿逆时针方向数到第K个数将其滑去,重复上述操作直到剩下一个数为止,问最后剩下的是哪个数。(用带头节点双向循环链表实现。)

静态链表

图示:

适用情况:

无法实现上述的链式存储 但可以借用一维数组来实现的情况可以使用。

优点:

线性表的插入和删除 操作时不需要移动元素,仅需要修改指针游标就行。具有链式存储的主要优点

主要函数:

1、定义结构

2、初始化:建立一个空的静态链表space(将一维数组space中各分量炼成一个备用链表零表示空指针根据当前地图)

3、获取结点函数:从备用链表上获取一个新的结点,如果备用连表已经空了,获取节点的操作失败

4、回收结点函数:将从链表中删除的结点插入到备用链表中的头结点之后

5、建立静态表:建立一个含有n个节点的静态链表head

6、求表长:计算静态链表head中数据元素的个数

7、取元素:取出静态链表head中的第i个结点的元素值

8、定位:确定静态链表head中第1个值为x

9、插入:在静态链表head的第i个结点之前插入一个值为x的新结点

10、删除:讲静态链表head中的第i个结点

11、输出:从头结点开始,依次输出静态链表head中的所有元素值。

相关推荐
程序员阿鹏10 小时前
为什么MySQL InnoDB选择B+树?
数据结构·数据库·b树·sql·mysql·算法·缓存
郝学胜-神的一滴12 小时前
C++11 工程级应用 09:告别无谓拷贝,解锁高性能移动语义
开发语言·数据结构·c++·vscode·软件工程·visual studio
2601_9657422212 小时前
全媒体运营与短视频代运营,两者有什么区别?
大数据·数据结构·人工智能·算法·ai·媒体
彧azz13 小时前
数据结构:关于图的学习
c语言·数据结构·笔记·学习·算法
彧azz14 小时前
二叉搜索树学习记录
c语言·数据结构·笔记·算法
suhan15 小时前
【数据结构】二、线性表:2.单链表的定义与实现(带头结点与不带头结点的区别)
数据结构
AgentMaster18 小时前
数据治理工具选型指南:一套可复用的四阶段决策框架
大数据·数据结构·人工智能·算法
不会就选b19 小时前
数据结构之树&&二叉树(四)
数据结构·算法
find1star20 小时前
LeetCode 25:K 个一组翻转链表
java·数据结构·算法·leetcode·链表·职场和发展·动态规划
ysu_031420 小时前
13-图的基础:存储与表示
数据结构·