浅谈线性表

简介: 数据结构线性表、栈与队列的区别0

 halo~大家好,今天来跟大家分享数据结构线性表、栈与队列的区别。

一、线性表

1、什么是线性表

   还记得我们小学时放学之前要做什么吗--排队。我记得我总是排在第二位置,前面是那个男孩,后面是另外一个男孩,每次都是他们,为什么要这么做?因为当我看不见他们的时候,老师可以迅速找出谁不在,迅速清点人数。这种排好队的组织方式,就是我们即将学习的数据结构:线性表。

2、线性表(List)的定义

   零个或多个数据元素的有限序列。

   注意:第一个元素无前驱,最后一个元素无后继,其他元素都有且只有一个前驱和后继。

   线性表元素的个数n(n≥0)定义为线性表的长度,当n=0时,称为空表。在较复杂的线性表中,一个数据元素可以由若干个数据项组成。

640.jpg

图 1-1

3、线性表的顺序存储结构        

   线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。如图1-2所示。

640.png

图1-2

在C语言中可以用一位数组实现顺序存储结构。

注意区分:“数组的长度”和“线性表的长度”

数组的长度:是存放线性表的存储空间的长度,存储分配后这个大小一般不会改变。

线性表的长度:是线性表中数据元素的个数

在任意时刻,线性表的长度应小于等于数组的长度。

优点:

①无须为表示表中元素之间的逻辑关系而增加额外的存储空间;          

②可以快速地存取表中任一位置的元素;

缺点:

①插入和删除操作需要移动大量的元素;

②当线性表长度变化大时,难以确定存储空间的容量;

③造成存储空间的碎片;

4、线性表的链式存储结构

   那么链式存储结构与顺序结构有什么不一样呢?在顺序结构中,除了要存数据元素外的信息,还要存储它的后继元素的存储地址。我们把存储数据元素信息的域称为数据域,把存储直接后继位置的域称为指针域。指针域存储的信息称为直接或链。这两部分信息组成数据元素ai的存储映像,称为结点。

640.png

               图 1-3      

   我们把链表中第一个结点的存储位置称为头指针,最后一个结点指针为空(NULL)。

   头指针与头结点的异同:

640.jpg

640.png

5、单链表结构与顺序存储结构的优缺点

640.jpg

好啦~今天的分享到此为此,下期详细介绍几种链表。

号主:一枚机械专业本科生,经历了转行,从外包逆袭到芯片原厂的Linux驱动开发工程师,深入操作系统的世界,贯彻终身学习、终身成长的理念。平时喜欢折腾,寒冬之下,抱团取暖,期待你来一起探讨技术、搞自媒体副业,程序员接单和投资理财。【对了,不定期送闲置开发板、书籍、键盘等等】。

如果你想了解我的转行经验,欢迎找我交流~gongzhong号【哆哆jarvis】

一起不断探索自我、走出迷茫、找到热爱,希望和你成为朋友,一起成长~

目录
打赏
0
0
0
0
12
分享
相关文章
数据结构实验三 线性表的链式存储结构及实现
数据结构实验三 线性表的链式存储结构及实现
249 0
线性表
从以上就很容易看出,在缓存利用率方面,顺序表由于内存是连续的,而链表是一个个单个的节点连起来的,顺序表的命中率绝对要比链表高不少,但是链表又要比顺序表要灵活不少,到这里我相信你就能理解为什么说所以这两种结构是优势互补的关系了,具体使用哪种结构,当然还是要根据具体场景去抉择了,好了这篇博客到这里就结束了,多多点赞支持哦!!
线性表
线性表的链式存储——链表
线性表的链式存储——链表
264 0
线性表的顺序存储——顺序表
线性表的顺序存储——顺序表
196 2
线性表的顺序存储——顺序表
线性表的链式存储实现(带头结点)
线性表的链式存储实现(带头结点)