线性表的基本概念与实现

1、线性表:是具有相同特性数据元素的一个有限序列。

相同特性:把同一类事物归类,方便批量处理。

有限:表中元素个数为n(n>=0)。

序列:表中元素排成一列,体现了一对一的逻辑特性。(排序后的序列称为有序序列,未排序的则称为无序序列,但都是序列。)

2、线性表的逻辑特性

只有一个表头元素,只有一个表尾元素,表头元素没有前驱,表尾元素没有后继,除表头和表位之外,其他元素只有一个直接前驱,也只有一个直接后继。

3、线性表的存储结构

线性表的存储结构有顺序存储结构和链式存储结构两种。前者称为顺序表,后者称为链表。

①顺序表

顺序表就是把线性表中的所有元素按照其逻辑顺序,依次存储从指定的存储位置开始的一块连续的存储空间中。

要求存储空间是连续的

②链表

在链式存储中,每个节点不仅包含所有元素的信息还包括元素之间逻辑关系的信息,如单链表中前驱结点包含后继结点的地址信息,这样就可以通过前驱结点中的地址信息找到后继结点的位置。

地皮上不仅有房子,还有指向下一个地皮的指针

单链表

带头结点的单链表

头指针head指向头结点,头结点的值域不含任何信息,从头结点的后继结点开始储存数据信息。头指针head始终不等于NULL,head->next等于NULL的时候,链表为空。

不带头结点的单链表

头指针head直接指向开始结点,当head等于NULL的时候,链表为空。

双链表

双链表就是在单链表的结点上增添了一个指针域,指向当前结点的前驱。这样就可以方便的由其后继找到前驱,

带头结点的双链表

不带头结点的双链表

循环单链表

将单链表的最后一个指针域指向链表中的第一个结点。

 

循环双链表

不含头结点的单双循环链

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值