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

              

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271680.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言流水灯小程序,流水灯小程序.doc

流水灯小程序流水灯小程序#include void delay() //延时函数&#xff0c;这里延时100ms{int i,j;for(i0;i<100;i){for(j0;j<2242;j){} //j循环一次大概1ms}}void main(){ //这里看LED原理图LPC_IOCON->JTAG_TMS_PIO1_00x01;//定义p1.0引脚为输出LPC_IOCON->JTAG_TD…

iphone导出照片到电脑_iPhone里的照片如何快速导入电脑

前几日我一好友发微信问我&#xff1a;“向阳&#xff0c;我手机里有一万多张照片&#xff0c;怎么能快速的备份到电脑里&#xff1f;”我一看这问题&#xff0c;确实很多果友从用苹果手机开始&#xff0c;机器已经更新换代了好多代了&#xff0c;照片是越来越多&#xff0c;内…

数据结构基础:栈和队列学习笔记

1、栈1.1 栈的定义栈是只能通过访问它的一端来实现数据的存储和检索的一种特殊的线性数据结构。栈的修改要遵循先进后出的原则&#xff0c;这个是栈的核心。在栈中进行插入和删除操作的一端称为栈顶&#xff08;Top&#xff09;。另一端被称为栈底&#xff08;bottom&#xff0…

Jquery高级编程

1.javascript具有等于&#xff08;&#xff09;和等同&#xff08;&#xff09;等号操作符是危险的&#xff0c;因为它在执行比较之前&#xff0c;强制执行类型转换。 2.非侵扰式编程。 3.3.3Jquery的框架结构&#xff0c;待深入理解。 4.选择器 a.元素选择器&#xff08;元素属…

C语言链表为什么倒着输出,关于链表倒着存,正着输出。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼题目要求是你输入a->b->c->d&#xff0c;然后存在内存里&#xff0c;然后改变在内存里的存储&#xff0c;改成存d->c->b->a&#xff0c;然后输出还是abcd&#xff0c;能不能就是用一个数组也存一份输入的&#x…

idea @Autowired 注入爆红(无法注入)

问题如下图所示,idea Autowired 注入爆红(无法注入) seettings ----> Editor Inspactions ----->spring ---->spring Core ----> Code ----> Autowring for Bean Class 去掉那个勾 效果如下

华为手机相册怎么镜像翻转_怎么利用手机相册制作电子视频

怎么通过手机照片制作视频&#xff1f;将照片做成视频并不是很难&#xff0c;可以直接在手机上进行操作&#xff0c;下面来看看是怎么操作的。方法/步骤在手机上打开清爽视频编辑器&#xff0c;有视频编辑、美拍美摄、电子相册、特效模板、动感视频、创意视频、动态字幕、视频变…

Cluster_analysis

https://en.wikipedia.org/wiki/Cluster_analysis转载于:https://www.cnblogs.com/WCFGROUP/p/5557907.html

数据结构基础:树结构的学习笔记

1、树的定义树是n(n>0)个节点的有限集合。当n0时称为空树&#xff0c;当n>0 为非空树&#xff0c;任何非空树中&#xff0c;有且仅有一个根节点&#xff1b;其余节点可分为m(m>0)个互不相交的有限集合T1、T2 等&#xff0c;其中每一个集合都可以称为一棵树&#xff0c…

android组件用法说明,Android第三方控件PhotoView使用方法详解

Android第三方控件PhotoView使用方法详解发布时间&#xff1a;2020-10-21 15:06:09来源&#xff1a;脚本之家阅读&#xff1a;74作者&#xff1a;zhaihaohao1PhotoView的简介&#xff1a;这是一个图片查看库&#xff0c;实现图片浏览功能&#xff0c;支持pinch(捏合)手势或者点…

idea中新建分支并且切换到新建的分支上

开发新功能,idea上新建自己的分支,要在dev分支上新建 首先,idea右下角可以看到目前在dev分支上 点击dev,接着New Branch 输入分支名 在Local Branches中就显示了 然后可以看到已经切换到刚新建的分支上了 想要切换到刚新建的分支上开发时,可以点击分支,在弹框上点击Checkout

vnpy怎么创建策略并回测_【手把手教你】入门量化回测最强神器backtrader(一)

1 引言目前基于Python的量化回测框架有很多&#xff0c;开源框架有zipline、vnpy、pyalgotrader和backtrader等&#xff0c;而量化平台有Quantopian&#xff08;国外&#xff09;、聚宽、万矿、优矿、米筐、掘金等&#xff0c;这些量化框架或平台各有优劣。就个人而言&#xff…

数据结构基础:算法的基础知识笔记

1、算法的概念算法是问题求解过程中的精确描述&#xff0c;它为解决某一特定类型的问题规定了一个运算过程。2、算法的特点2.1 有穷性一个算法必须在有穷的步骤结束后结束&#xff0c;并且每一步都在有穷时间内完成。2.2 确定性算法的执行过程中每一步都要有确定的定义&#xf…

Spring Bean Scope 有状态的Bean 无状态的Bean

在Spring的Bean配置中&#xff0c;存在这样两种情况&#xff1a; [xhtml] view plaincopy<bean id"testManager" class"com.sw.TestManagerImpl" scope"singleton" /> <bean id"testManager" class"com.sw.TestMana…

数据结构基础:图结构的学习笔记

1、图的定义图是比树更加复杂的数据结构&#xff0c;在图的结构当中&#xff0c;任意两个节点之间都有可能有直接关系&#xff0c;所以图中一个节点的前驱和后继的数目是没有限制的。2、图的用途用于描述各种复杂的数据对象&#xff0c;在自然科学、社会科学和人文科学等很多领…

企业网站 源码 服务邮箱:_企业网站建设对于服务器的选择至关重要

网站建设是离不开租用服务器的&#xff0c;这是目前大多数企业都在做的。但有些企业由于对网站服务器的租用技巧及经验的缺乏&#xff0c;经常会导致网站在运营过程中出现非常多的问题&#xff0c;严重影响了企业业务的正常开展。石家庄网站建设方面的人才来说明几点不容忽视的…

linux sli 提高效率,从原理到性能提升 MCP78智能SLI全解析

NVIDIA正式发布了“Hbrid SLI”技术在昨日的2008 CES上&#xff0c;NVIDIA正式向外界发布了“Hbrid SLI”技术&#xff0c;即我们所俗称的混合SLI&#xff0c;而NVIDIA在发布时已更正式名为“智能SLI技术”。虽然这仅仅是NVIDIA在此次消费电子展上的宣讲主题之一&#xff0c;但…

git操作代码文件的颜色变化

1.若文件显示红色&#xff0c;表示文件未add到git进行管理 2.若文件显示绿色&#xff0c;表示文件已经交给git管理&#xff0c;但从未上传到远程仓库中 3.若文件显示蓝色&#xff0c;表示文件已经上传过远程仓库&#xff0c;且此时本地文件与远程仓库文件不一致 4.若文件显示…

[GitHub]第三讲:简单分支操作

Git 最核心的操作对象是版本&#xff08; commit &#xff09;&#xff0c;最核心的操作技巧就是分支。 什么是分支&#xff1f; 仓库创建后&#xff0c;一旦有了新 commit&#xff0c;默认就会放到一个分支上&#xff0c;名字叫 master。前面咱们一直看到的多个版本组成的一条…