数据结构修行中(2)——线性表(上)

一、线性表的概念

1、线性表:是由n个类型相同的数据元素组成的有限序列,记为(a1, a2, …, ai-1, ai, ai+1, …, an)。在线性表中,数据ai-1在ai的前面,ai又在ai+1的前面,我们把ai-1称为ai的直接前驱元素,ai称为ai+1的直接前驱元素。ai称为ai+1的直接后继元素,ai+1称为ai的直接后继元素。
2、线性表有两种存储结构:顺序存储结构和链式存储结构
3、线性表的抽象数据类型包括数据对象、数据关系、基本操作

二、线性表的顺序表示与实现

1、线性表的顺序存储结构是一种随机存取的存储结构。

顺序表的优点

A.无须为表示表中元素之间的关系而增加额外的存储空间。
B.可以快速地存取表中任一位置的元素。

顺序表的缺点

A.插入和删除操作需要移动大量元素。
B.使用前需事先分配好存储空间,当线性表长度变化较大时,难以确定存储空间的容量。分配空间过大会造成存储空间的巨大浪费,分配的空间过小,难以适应问题的需要。

三、线性表的链式表示与实现

1、线性表的链式存储是采用一组任意的存储单元存放线性表的元素。
2、为了表示每个元素ai与其直接后继ai+1的逻辑关系,除了存储元素本身的信息外,还需要存储一个指示其直接后继元素的信息(即直接后继元素的地址)。这两部分构成的存储结构称为结点
结点包括两个域:数据域指针域。数据域存放数据元素的信息,指针域存放元素的直接后继的存储地址。指针域中存储的信息称为指针
3、通过指针域将线性表中n个结点元素按照逻辑顺序链在一起就构成了链表。由于链表中的每一个结点的指针域只有一个,我们将这样的链表称为单链表
图形表示通常用箭头表示指针,把链表通过箭头链接起来,在单链表的第一个结点之前增加一个头结点(head)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值