数据结构复习一:线性表

来源:互联网 发布:js 控制图片旋转 编辑:程序博客网 时间:2024/05/28 16:28

一、线性表的类型定义

1、线性表:一个线性表是有n个数据元素的有限序列

2、一个数据元素可以由若干个数据项组成。在通常情况下,常把数据元素称为记录,含有大量记录的线性表称为

3、前驱元素、后继元素

4、空表

*例2-1:假设利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=AUB。

*例2-2:已知线性表LA和LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,LC中的

元素仍按值非递减有序排序。


二、线性表的顺序表示和实现(重点)

1、顺序表示线性表指的是用一组地址连续的存储单元依次存储线性表的数据元素

2、顺序表示线性表的位置关系(?)

3、线性表的顺序存储结构是一种随机存取的存储结构(只要确定了存储线性表的起始位置,线性表中的任一个

元素都可以随机存取)

4、线性表的动态顺序存储结构(实现?)

5、构造一个空的顺序线性表(实现?)

6、在顺序线性表插入元素(图2.3?)|(实现?)|(时间复杂度?)

7、在顺序线性表删除元素(图2.4?)|(实现?)|(时间复杂度?)

8、在顺序线性表L中查找第1个值与e满足compare()元素的位序(实现?)|(时间复杂度?)

9、顺序表的合并(实现?)|(时间复杂度?)


三、线性表的链式表示和实现(重点)

1、结点=数据域+指针域

2、头结点:在单链表的第一个结点之前附设一个结点,称之为头结点。头结点的数据域可以不存储任何信息,

也可以存储如线性表的长度等类的附加信息,头结点的指针域存储指向第一个结点。(P28:带头结点的单链表

2.7?)

3、单链表非随机存取的存储结构(原因?)

4、单链表的存储结构(实现?)

5、单链表的创建(实现?)|(时间复杂度?)

6、单链表元素的查找(实现?)|(时间复杂度?)

7、单链表的插入(关键步骤?)|(图2.8在单链表中插入节点时指针的变化情况?)|(实现?)|(时间复杂

度?)

8、单链表的删除(关键步骤?)|(图2.9在单链表中删除节点时指针的变化情况?)|(实现?)|(时间复杂

度?)

9、两个有序链表并为一个有序链表(实现?)(时间复杂度?)


四、静态链表(非重点)

1:特点:链表中数组的一个分量表示一个结点,用游标代替指针指示结点在数组的位置。这种存储结构需要预

先分配一个较大的空间,但是在作线性表的插入和删除操作时不需要移动元素。

2、在静态链表中查找第一个值为e的元素

3、用静态链表实现(A-B)U(B-A)


五、循环链表(重点)

1、特点:表中最后一个结点的指针域指向头结点,整个链表形成一个环(图2.12 单循环链表?)

2、循环链表的算法的循环条件是:是否等于头指针;线性链表的算法循环条件是P或者是P->NEXT


六:双向链表(重点)

1、有两个指针域,其一指向直接后继,其二指向直接前驱(线性链表的双向链表存储结构?)

2、结点的指针的特性(?)

3、双向链表的插入(图2.16?)|(实现?)

4、双向链表的删除(图2.15?)|(实现?)


七:一元多项式的表示及其相加

1、有序链表表示=系数+指数+指针域

2、多项式的相加(实现?)


八:简述线性表的顺序和链接两种存储方式的主要优缺点(?)




0 0
原创粉丝点击