跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机条目
特殊页面
站点
关于陋室
维基社群
新闻动态
联系我们
活跃用户
统计
参与
上传文件
待撰页面
新建页面
编辑入门
帮助
内容
分类树
所有页面
前缀索引
最多链入页面
热门页面
维护
MediaWiki 消息页
系统消息
小工具管理
小工具定义
用户组权限
界面
侧边栏
英文侧边栏
站点公告
匿名用户通知
公共样式表
公共脚本
陋室
搜索
搜索
中文(新加坡)
外观
登录
个人工具
登录
沙盒
查看“︁线性表”︁的源代码
页面
讨论
新加坡简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
常规
链入页面
相关更改
页面信息
Cargo数据
获取短链接
外观
移至侧栏
隐藏
←
线性表
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
用户
、
自动确认用户
您可以查看和复制此页面的源代码。
== 线性结构的特点 == * '''线性结构中的元素具有严格的一对一关系,表现为一个前驱和一个后继。''' * 通常存储为顺序表(数组)或链表。 == 顺序表中第 <math>i</math> 个数据元素存储位置的计算 == '''公式:''' <math>\text{LOC}(a_i) = \text{LOC}(a_1) + (i - 1) \times L</math> * '''<math>\text{LOC}(a_i) </math>''':第一个数据元素的存储地址。 * * '''<math>i</math>''':数据元素在表中的位置。 * * '''<math>L</math>''':每个元素所占存储单元大小。 该公式体现了顺序存储结构中地址的连续性,计算时间复杂度为 <math>O(1)</math>。 == 顺序表的基本操作 == * '''取值''':根据位置 ,直接通过公式计算地址,时间复杂度为 <math>O(1)</math>。 * * '''查找''':按值查找时,需要逐个比较,时间复杂度为 <math>O(n)</math>。 * * '''插入与删除''':为保持数据的连续性,需要移动元素,时间复杂度为 <math>O(n)</math>。 == 顺序存储结构的特点 == * '''逻辑相邻即物理相邻''':数据存储为一段连续的内存空间。 * * '''随机存取''':通过公式快速计算元素地址,支持直接访问任意位置。 * * '''存储密度大''':所有存储空间都存储有效数据,密度为 1。 == 链式存储结构的特点 == * '''物理位置不一定相邻''':数据元素之间通过指针链接,内存分配灵活。 * * '''顺序存取''':必须从头节点开始,逐一访问每个元素。 * * '''存储密度小于 1''':每个节点需要额外存储指针信息。 * * '''链表''':单链表中每个节点包含数据域和指针域。 == 单链表的操作 == === 单链表的插入操作 === 在位置 p 之后插入新节点 s: <syntaxhighlight lang="c"> s->next = p->next; p->next = s; </syntaxhighlight> # 将 s 的指针指向 p 的后继。 # # 将 p 的指针指向 s。 === 单链表的删除操作 === 删除位置 p 之后的节点 q: <syntaxhighlight lang="c"> q = p->next; p->next = q->next; </syntaxhighlight> # 将 q 定位为 p 的后继节点。 # # 修改 p 的指针,使其跳过 q。 == 效率 == 插入和删除只需修改指针,时间复杂度为 <math>O(1)</math>,不需要移动数据。 {{Template:数据结构与算法}} {{Template:线性表}}
此页面嵌入的页面:
Template:Navbox
(
查看源代码
)
Template:Navbox/styles.css
(
查看源代码
)
Template:PageToolsLink
(
查看源代码
)
Template:PageToolsLink/styles.css
(
查看源代码
)
Template:数据结构与算法
(
查看源代码
)
Template:线性表
(
查看源代码
)
Module:Navbox
(
查看源代码
)
Module:PageToolsLink
(
查看源代码
)
返回
线性表
。
搜索
搜索
查看“︁线性表”︁的源代码
添加语言
添加话题