数据结构--顺序表
线性表
由n(n>=0)个数据元素(结点)组成的有限(线段)序列。
记为:
(a0,a1,......,an-1)
其中,数据元素个数n称为表的长度,n=0时,称此线性表为空表。
n=0时:为空表
n不=0时:n为表长
线性表的结构仅涉及诸元素的线性相对位置。
例如:
第i个元素ai处在第i-1个元素ai-1的后面,第i+1个元素ai+1的前面。
逻辑结构
ai-1被称为是ai的直接前趋,但如果ai是第一个元素的话他没有直接前趋。
ai+1被称为是ai的直接后继,但如果ai是最后一个元素的话他没有直接后继。
基本操作
初始化操作,构造一个空的线性表L
InitList(L)
初始化做的工作就是清空线性表。
求表长,求出线性表L中的结点个数。
ListLength(L)
取线性表L中的第i个结点
GetNode(L,i) i表示第i个位置
要求:0<=i<=ListLength(L)-1
如果不存在,则返回NULL
查找结点
LocateNode(L,x)
在L中查找值为x的结点,并返回该结点在L中的位置,若L易做图有多个结点的值和x相同,则返回首次找到的结点位,若L中没有结点值为x,则返回-1表示失败。
插入结点
InsertList(L,x,i)
在线性表L的第i个位置上插入一个值为x的新结点,原第i个位置结点以及后面的结点一次向后面移动一个位置。
注:
0<=i<=n-1,n为原来L的长度,加入x后L的长度为n+1
容错保护:
如果i<0,则让i=0,如果i>n,则让他变成i=n.
删除结点
DeleteList(L,i)
删除线性表L的第i个结点,原第i个位置结点被删除,i+1以及后面的结点依次向前移动一位
注:
0<=i<=n-1,n为原来L的长度,删除第i个位置上的结点后长度变为n-1
顺序表
把线性表的结点按逻辑次序依次放在一组地址连续的存储单元里。这种存储方式就是顺序表(Sequentail List)。
补充:综合编程 , 其他综合 ,