美文网首页Android技术知识Android开发经验谈
数据结构——线性表及线性表顺序存储

数据结构——线性表及线性表顺序存储

作者: Android高级架构探索 | 来源:发表于2018-10-20 22:13 被阅读2次

代码写的一定程度上,要再次提升的时候,是该好好的看一下数据结构和算法了。趁着最近有时间,好好的复习一下,今天主要是线性表和线性表的顺序存储。

线性表的概念
1、 线性表是一种最基本、最简单的的数据结构,是一种线性结构。

2、 线性表中数据元素之间的关系是一对一,是n个数据元素的有限序列。

3、 若将线性表记为(a1, ……, ai-1, ai,ai+1, ……,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当丨=1, 2, ……, n-1时,ai有且仅有一个直接后继,当i=2, 3, ……, n时,ai有且仅有一个直接前驱。

所以线性表元素的个数n (n>0)定义为线性表的长度,当n=0时,称为空表


image.png

线性表抽象数据类型定义如下


image.png

线性表的顺序存储结构
线性表的顺序存储结构是最简单最常用的数据结构,用一段连续地址依次存储表中的数据元素。下面我们用代码来实现:


image.png
image.png

运行结果如下:


image.png

线性表顺序存储的时间复杂度:
1、最好的情况,如果元素要插入到最后一个位置,或者删除最后一个元素, 此时时间复杂度为0(1),因为不需要移动元素的。

2、最坏的情况,如果元素要插入到第一个位置或者删除第一个元素,那就意味着要移动所有的元素向后或者向前,函数要对线性表循环一遍操作,所以这个时间复杂度为 0(n)。

3、平均的情况,由于元素插入到第i个位置,或删除第i个元素,需要移动n—i个元素。根据概率原理,每个位置插入或删除元素的可能性是相同的,也就说位置靠前,移动元素多,位置靠后,移动元素少。最终平均移动次数和最中间的那个元素的移动次数相等,为(n-1)/2。因此时间复杂度为0(n)。

线性表顺序存储的优缺点:
优点:查询速度快,简单、运算方便,更适合小线性表或者固定长度的线性表。

缺点:删除和插入效率较低;存储空间容易出现上溢;容易出现空间浪费。

相关文章

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

  • 线性表的链式存储结构Java实现

    有了前面文章的铺垫:数据结构的基本理解线性表及其顺序存储结构的理解线性表的顺序存储结构java实现线性表链式存储就...

  • 数据结构-线性表的顺序表示以及实现(C语言)

    数据结构-线性表的顺序表示 线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素,这种表示也称作...

  • Java造轮子-数据结构-线性表

    数据结构-线性表 @(数据结构) 线性表是数据结构中的逻辑结构。可以存储在数组上,也可以存储在链表上。 顺序表(数...

  • 数据结构之List(一) 手写单链表

    数据结构之List(一) 手写单链表 1.线性表 线性表有两种结构:顺序存储结构和链式存储结构.顺序存储结构的常见...

  • 线性链表

    线性链表 线性表的顺序存储结构:顺序表线性表的链式存储结构:线性链表 线性表的链式存储所占存储空间大于顺序存储。 ...

  • 线性表的顺序存储

    一、概念 线性表的顺序存储指的是用一组地址连续的存储单元依次存储线性表的数据结构。——《数据结构》C语言版 简而言...

  • 数据结构和算法一(线性表和单链表)

    一、前言 二、数据结构 三、线性表: 3、我们在来看顺序存储方式的特点 4、链式存储结构: 四、线性表(循环链表)...

  • 数据结构之有序线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构以及线性表的链式存储结构,今天接着写有序线性表的链式存储结 ...

  • 数据结构与算法(二)

    线性表及其顺序存储结构 线性表的基本概念 线性结构又称为线性表,线性表是最简单也是最常用的一种数据结构。 线性表的...

网友评论

    本文标题:数据结构——线性表及线性表顺序存储

    本文链接:https://www.haomeiwen.com/subject/vrcvzftx.html