数据结构基础:线性表学习笔记

举报
IT技术分享社区 发表于 2022/12/13 21:53:17 2022/12/13
【摘要】 线性表特点 1、存在唯一的一个首元素 2、存在唯一一个尾元素 3、除第首元素外,每个元素只有一个直接前驱。 4、除尾元素外,每个元素只有一个直接后继。

      

1、线性表定义

线性表是指n个元素的有限序列(n>=0),通常用(a1,a2,a3...,an),来表示。

2、线性表特点

1、存在唯一的一个首元素

2、存在唯一一个尾元素

3、除第首元素外,每个元素只有一个直接前驱。

4、除尾元素外,每个元素只有一个直接后继。

3、线性表的存储结构

3.1 线性表的顺序存储

定义:线性表的顺序存储是指用一组连续的存储单元依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理存储位置上也相邻。这种存储方式无需占用额外的存储空间来存储。

优点:可以随机读取 表中的元素。按照序号检索元素比较快。

缺点:插入、删除元素都需要移动元素。

3.2 线性表的链式存储

3.2.1 线性表的概念

定义:是节点来存储数据元素,元素节点的地址可以连续,也可以不连续。因此节点之间的元素的存储必须有逻辑关系。

元素节点:包含数据域、指针域(存储该元素的直接前驱、直接后继的位置信息)

优点:插入和删除操作不需要移动元素。、

缺点:只能顺序的读取元素,不能随机读取。

3.2.2 线性链表的分类

单链表:最后一个节点指针域为null

循环链表:最后一个指针域为指向第一个节点。因此循环链表可以从任意节点开始遍历整个链表。

双向链表:每个节点包含两个指针,分别指明当前元素的直接前驱和直接后继的存储信息。可以从两个方向遍历链表中的元素。

3.3  线性表顺序存储和链式存储比较

性能方面

比较内容

顺序存储

链式存储

空间性能

存储密度

=1  更优

<1


存储容量

初始化确定

动态分配,更优


查询算法

O(n/2)

O(n/2)


读取算法

O(1) 更优

O([n+1]/2),范围1~n


插入算法

O([n]/2),范围0~n

O(1) 更优


删除算法

O([n-1]/2)

O(1) 更优

 

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。