第三章:结构表

线性表:零个或多个相同特性的数据元素的有限序列。
首先它是一个序列,元素之间是有顺序 的,第一个元素无前驱,最后一个元素无后继,其他的都有且只有一个前驱和后继。
而所有元素按这种1对1的邻接关系构成的整体就是线性表。

线性表的存储结构:线性表有顺序表和链式两类存储结 构

(一)顺序表

顺序表就是把线性表中的所有元素按照其逻辑顺序,依次存储到从计算机存储器中指定存储位置开始的一块连续的存储空间。
int ListInsert(SqList *L,int i,ElemType e)

{
if(L -> length == MAXSIZE)

return 0;

if(i < 1 || i > length + 1)

return 0;

if(i < L -> length)

{

for( k = L->length; k > i; k–)

L->date[k] = L->date[k - 1];

}

L -> date[i - 1] = e;

L -> length++;
return 1;

}
(二)链表

在链式存储结构中,每个结点用于存储线性表的一个元素,每个结点不仅包含有所存元素本身的信息(称之为数据域)
,而且包含有元素之间逻辑关系的信息,即前驱结点包含有后继结点的地址信息,这称为指针域,这样就可以通过前驱结点的指针域方便地找到后继结点。
链表由多个结点组成,这些结点的地址可以是连续,也可以不连续,这就是说这些数据元素可以存储在内存中未被占用的任意位置。
单链表:在每个结点中包含有数据域外,只设置一个指针域,用于指向其后继结点
双链表:在每个结点中包含有数值域外,设置有两个指针域,分别用于指向其前驱结点和后继结点。
循环链表:循环链表是另一种形式的链式存储结构。它的特点是表中尾结点的指针域不变,而是指向表头结点,整个链表形成一个环。
静态链表:借用一维数组来描述线性链表,数组中的一个分量表示一个节点,同时使用游标代替指针一显示节点在数组中的相对位置。数组中的第0个分量可以看成头节点,其指针域指示静态链表的第一个节点。
链表的特点:由于每个继节点带有指针域,因此在存储空间上比顺序表要付出较大的代价,所以顺序表比链表的存储密度高。还有链表不具有顺序表的随机存取特点,但在链表中插入或删除操作时,只需修改相关节点的指针域即可,不需要移动节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值