本文基于Coursera北大课程《数据结构基础》,所有文中非标注图片均来自课件,侵删
线性结构是最简单而应用最广泛的一种数据结构,在不同的场合会采取不同的存储结构和实现方法。
本模块将介绍一种简单的线性结构——线性表,就是同类型的元素排成的一个线性序列,并且介绍了线性表的两种实现方法,即顺序表和链表。
重点:线性结构的逻辑定义,线性表的各种分类,顺序表、链表的定义和相关操作。
难点:注意顺序表、链表的各种时间空间效率讨论,包括插入删除检索等在各种概率分布情况下的讨论。链表要特别注意表头结点的作用,链表指针的正确操作。
1. 线性表
1.1 什么是线性表
线性表(表)是由大于等于0个元素组成的有穷序列。线性表操作十分灵活,长度可增可减。
下图是一个表长为n的线性表(当n=0时为空表),每个元素a称为表目(或者记录),a的下标称为索引。
1.2 线性结构定义
对于一组线性表{a0, a1, a2, ..., an-1},我们可以用二元组B=(K,R)的形式表示。K表示knots, R表示replationship。
那么线性结构的B=(K,R),其中K={a0, a1, a2, ..., an