ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-05-28 21:01:21  阅读:154  来源: 互联网

标签:存储 线性表 更优 元素 笔记 链表 数据结构 节点


       watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=       

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) 更优

 

 

IT技术分享社区

个人博客网站:https://programmerblog.xyz

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

标签:存储,线性表,更优,元素,笔记,链表,数据结构,节点
来源: https://blog.51cto.com/u_11205641/2828350

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有