大话数据结构第三章

线性表:另个或多个数据元素的有限序列

首先是线性的,单列的,一个数据元素后面或者前面不能同时对应两个元素,只能对应一个元素,这个前面的元素叫做直接前驱元素,后面的元素叫做直接后继元素。元素个数为0的时候,称为空表。

在比较复杂的线性表中,一个数据元素可以由若干个数据项组成。

线性表抽象数据类型,还介绍几种基本操作吧:

InitList(*L) 初始化操作,证明L表是空的。 ListEmpty(L) 若列表为空,返回true 否则返回false

ClearList(*L) 清空表

GetElem(L ,i,*e) 将线性表中的第i个元素值返回给e

LocateElem(L,e) 在线性表中查找与给定值e相等的元素,如果查找成功,返回该元素在表中序号表示成功;否则,返回0表示失败。

ListInsert (*L,i,e) 在线性表L中的第i个位置插入新元素e

ListDelete(*L,i,e)  删除线性表L中第i个元素位置,并用e返回其值。

ListLength(L) 返回线性表L中的元素个数

3.4 线性表的顺序存储结构

指的是用一段地址连续的存储单元一次存储线性表的数据元素 

数组的长度和线性表的长度有区别:数组的长度是存放线性表的存储空间的长度,存储分配之后一般这个量是不变的。 线性表的长度是线性表中的数据元素的个数,随着线性表的插入和删除操作的进行,这个量是变化的。

地址计算方法:存储器中的每个存储单元都有自己的编号,这个编号称为地址

随机存取结构:  对每个线性表位置的插入或者取出数据对于计算机来说都是相等的时间,也就是一个常数,因此算法中存取时间性能为O(1)。具有这一特点的存储结构为随机存取结构

插入和删除都很好理解:插入位置不合理就抛出异常,线性表长度大于等于数组长度,抛出异常或者动态增加容量。表长加1,插入元素位置后面的元素都要后挪一个。删除同理,只是改成位置前移一个。

线性表的顺序存储结构,在存和读取数据的时候,不管是哪个位置,时间复杂度都是O(1),而插入或删除的时候,时间复杂度都是O(n)

 

 

 

 

你可能感兴趣的:(算法)