【数据结构】线性表基本知识

线性表

n(n>=0)个数据元素组成的一个有限序列,可以在其任意位置上进行插入和删除操作的线性数据结构。
从数据在物理内存存储形式上线性表可分为:顺序表和链表。线性表中数据与数据元素之间存在一对一的关系,即除第一个元素和最后一个元素外,每个元素都有唯一的直接前驱和唯一的直接后驱,第一个元素没有前驱,最后一个元素没有后继。

顺序表

用一段地址连续的存储单元依次存储数据元素的线性结构
地址连续的空间,一般情况下采用数组,但数组有静态数组和动态数组,所以顺序表分为:静态数组表和动态数组表。如图所示:(很丑我懂)

在这里插入图片描述
链表
一种链式存储的线性表,用一组地址任意的存储单元存放线性表的数据元素,称存储单元为一个节点。

在这里插入图片描述

链表与顺序表的优缺点

顺序表 内存中地址连续
优点是随机访问比较便捷快速,创建也比较简单,随机查找比较方便,可以直接给出下标,排序也方便简单。顺序表的CPU高速缓存效率更高.
缺点是不够灵活,删除增加的工作量叫大,比较麻烦,长度不能实时变化,插入/删除数据效率很低,时间复杂度为O(N)
适用场景:适用于需要大量访问元素的 而少量增添 / 删除元素的程序
单链表:内存中地址不是连续的
优点是插入删除比较方便,长度可以实时变化,插入/删除效率高,时间复杂度为O(1)
缺点是不支持随机查找,查找元素需要遍历。单链表的CPU高速缓存效率低。
适用场景 : 适用于需要进行大量增添 / 删除元素操作 而对访问元素无要求的程序

猜你喜欢

转载自blog.csdn.net/weixin_41892460/article/details/82855196