第二章
线性表是由n(n≥0)个数据元素组成的有限序列,当n=0是称为空表,非空的线性表记为(a1,a2,a3…an)
线性结构的特点:
(1)非空集中,有唯一的第一个元素;
(2)非空集中,有唯一的最后一个元素;
(3)除第一个元素外,每个元素均只有一个前驱;
(4)除第后一个元素外,每个元素均只有一个后继;
线性表的类型定义线性表:
常见的一种数据结构,在同一线性表中的数据元素具有相同特性,相邻数据元素之间存在着序偶关系;
线性表抽像数据类型基本操作:构造空的线性表、销毁线性表、置空线性表、判断表是否为空、求线性表的长度、
获取第i个数据元素的值、求满足特定关系的位序、求数据元素的前驱、求后继元素的后继、 插入、删除、遍历等12个基本操作;
线性表的应用实例:(1)求集合的并集;(2)求集合的归并;
循环链表:特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环,在循环链表中,为了方便某些操作(如找表尾)的实现,一般设立尾指针而不是头指针; 双向链表:链表的每个结点,均含在两个指针域,一个指向直接后继,一个指向直接前驱;
线性表是一种数据元素有序的逻辑结构,通常采用 顺序存储结构 和 链式存储结构 。
a.线性表采用顺序存储结构时,有利用线性表长度的计算、线性表数据元素的存取和数据元素的遍历,同时也从物理结构上反映了线性表数据元素的逻辑结构,但是采用顺序存储结构时,插入和删除数据元素时,要移动较多的数据元素;
b.采用链表结构存储的线性表,克服了插入和删除数据元素时要移动较多元素的缺点,其只要寻找到需要插入和删除的数据元素处,处理相应的指针就可以实现数据元素的插入和删除,同时也和顺序存储的线性表一样方便遍历,但是其不利于计算线性表的长度。
线性表的链表存储结构有以下几种常见类型:采用带头指针和头结点的单链表、采用仅带头指针的单链表、带头指针和头结点的循环链表、带头指针和尾结点的循环链表、双向链表等形式。
在实际应用中,结合顺序表易于计算表长和链表易于插入和删除的特点,实际一般采用两者结合的一种单链表,其链表类型为带有头指针(含头结点)和尾指针,以及含有线性表长度的分量。