线性表的顺序存储结构和链式存储结构
一、顺序存储:利用数组的连续存储空间顺序存放线性表的各元素。
主要操作的实现:
1、初始化(建立空的顺序表)
2、查找
查找成功的平均比较次数为(n+1)/2,平均时间性能为O(n)。
3、插入(第i(1<=i<=n+1)个位置上插入一个值为X的新元素)
插入实现操作:
4、删除(删除表的第i(1<=i<=n)个位置上的元素)
删除操作实现:
二、链式存储:不要求逻辑上相邻的两个元素物理上也相邻,通过“链”建立起数据元素之间的逻辑关系。其中,插入、删除不需要移动数据元素,只需要修改“链”。
主要操作的实现:
1、求表长
表的时间性能为O(n)
2、 查找
3、插入(在第i-1(1<=i<=n+1)个结点后插入一个值为X的新元素)
(1)先构造一个新结点,用s指向;
(2)再找到链表的第i-1个结点,用p指向;
(3)然后修改指针,插入结点(p之后插入新结点是s)
插入操作实现:
4、 删除(删除链表的第i((1<=i<=n)个位置上的结点)
(1)先找到链表的第i-1个结点,用p指向;
(2)再用指针s指向要被删除的结点(p的下一个结点);
(3)然后修改指针,删除s所指结点;
(4)最后释放s所指结点的空间。
删除操作实现:
//内容来自:2.1.2 线性表及顺序存储_哔哩哔哩_bilibili
线性表的顺序存储结构和链式存储结构相关推荐
- 线性表之顺序存储结构与链式存储结构 及 应用
前言 我们常用的线性表是顺序存储结构和链式存储结构表示,是最基本.最简单.也是最常用的一种数据结构:一个线性表是由n个相同特性的数据的有限序列:比如java中的数组 ,链表:所以学习这两种结构表示是非 ...
- 线性表之顺序存储结构和链式存储结构
线性表包括顺序表和链表,其中链表又包括单链表.循环链表.双向链表. 顺序存储结构和链式存储结构有所不同,具体区别如下表所示: 线性表是一种逻辑结构,相同数据类型的n个数据元素的有限序列,除第一个元素外 ...
- 顺序存储结构和链式存储结构的优缺点
(一)顺序存储结构和链式存储结构的优缺点比较,以及使用情况. 1 优缺点 ① 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一):要求内存中可用存储单元的地址必须是连续的. 优点:存储密度大( ...
- 第三章 数据结构 线性表的逻辑结构 和 线性表的顺序存储结构,链式存储结构
文章目录 线性表的特点 引用 集合与线性表的区别在于元素是否可以重复. 线性表的顺序存储结构 顺序存储的优缺点: 一维数组来表示顺序表的数据存储区域. 线性表的链式存储结构 链式存储的优缺点 线性表的 ...
- 队列的定义、循环队列的顺序存储结构及链式存储结构
文章目录 1 队列的定义 1.1 文字定义 1.2 代码定义 2 循环队列 2.1 循环队列的定义 2.2 循环队列的顺序存储结构 3 队列的链式存储结构 3.1 链队列的入队操作 3.2 链队列的出 ...
- 数据结构第六篇——顺序存储结构与链式存储结构的特点
♥注:未经博主同意,不得转载. 两者特点: 顺序表的特点是逻辑上相邻的数据元素,物理存储位置也相邻,并且,顺序表的存储空间需要预先分配. 它的优点: (1)方法简单,各种高级语言中都有数组,容易实现. ...
- 顺序存储结构与链式存储结构的比较
2019独角兽企业重金招聘Python工程师标准>>> 一:顺序表的特点是逻辑上相邻的数据元素,物理存储位置也相邻,并且,顺序表的存储空间需要预先分配. 它的优点是: (1)方法简单 ...
- 从C语言的角度重构数据结构系列(三)- 顺序存储结构和链式存储结构之顺序表
前言 在学习具体的数据结构和算法之前,每一位初学者都要掌握一个技能,即善于运用时间复杂度和空间复杂度来衡量一个算法的运行效率. 在这里给自己打个广告,需要的小伙伴请自行订阅. python快速学习实战 ...
- 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)...
还记得数据结构这个经典的分类图吧: 今天主要关注一下线性表. 什么是线性表 线性表的划分是从数据的逻辑结构上进行的.线性指的是在数据的逻辑结构上是线性的.即在数据元素的非空有限集中 (1) 存在唯一的 ...
- 线性表之顺序存储和链式存储结构
线性表:由零个或多个数据元素组成的有限序列 线性表有两种物理存储结构:顺序存储结构和链式存储结构 一.顺序存储结构 顺序存储结构是存储结构类型中的一种,该结构是把逻辑上相邻的结点存储在物理位置上相邻的 ...
最新文章
- 【学习总结】数学-欧拉函数
- 谷歌地球API开发者指南(高级)
- 机器学习——KNN实现
- html网页缩小之后div框移动,css – DIV在浏览器中放大和缩小时移动
- java 启动参数 配置,java程序启动参数设置
- python random randint_python中random.randint和random.randrange的区别详解
- 学习 wxpython_序
- mysql执行sql流程_MySQL架构与SQL执行流程
- 操作系统 第三章 内存管理
- Linux运维跳槽40道面试精华题
- mysql where连接_MySQL连接查询on和where的区别和顺序
- EditPlus3.1工具以及Js插件(打包下载)
- JCVideoPlayerStandard点击全屏按钮崩溃
- 元宇宙势不可挡,facebook已更名Meta,前端人又能做什么?
- 彩影2008 白金版 10.1 build 2010
- css 设置冻结表格头,固定/冻结行表头、列表头的做法
- UEFI是什么意思?UEFI和BIOS的区别是什么?
- 盘点上海2010年入市新盘中最值得期待的楼盘
- 《算法笔记》学习日记——6.1 vector的常见用法详解
- php实现在线抽题,PHP实现类似题库抽题效果