第二章 线性表:线性表是最简单的数据结构,俗称表结构。本章详细讲解线性表的特点、存储实现方法、基本操作、性能分析、应用。通过本章的学习,学生将会认识并掌握表结构的组织方式和操作方法,并能在实际问题中进行应用。2.1线性表的存储实现:讲解线性表结构在内存中的实现方法,包括顺序存储和链式存储[单选题]链表不具备的特点是( )。
2.2顺序表的基本操作:本节讲解表中元素的查询、遍历等操作在顺序存储中的实现
2.3顺序表的插入和删除:讲授顺序表中元素的插入、删除操作的算法及实现。
2.4链表的基本操作:本节讲解表中元素的查询、遍历等操作在单链表中的实现,要熟练指针的操作。
2.5链表的插入和删除:本节讲解单链表中的元素插入、删除操作的详细过程及算法实现,并进行性能分析。
2.6链表的建立:本节介绍单链表的构建方法:头插法、尾插法。
2.7线性表的应用:本节介绍一元多项式计算器的设计方法,注重问题的分析与抽象,从而灵活应用线性表。
不必事先估计存储空间
所需空间与其长度成正比
插入和删除不需要移动任何元素
可随机访问任意一个结点
答案:可随机访问任一结点
[判断题]线性表的顺序存储表示优于链式存储表示。
错
对
答案:×
对
错
答案:对
删除第一个结点
在p结点之后插入一个结点
在第一个结点之前插入一个结点
删除最后一个结点
答案:删除最后一个结点
q->next=s; s->next=p;
p->next=s;s->next=q;
p->next=s->next;s->next=p;
s->next=p->next;p->next=-s;
答案:q->next=s; s->next=p;
顺序表
单链表
用尾指针表示的循环单链表
用头指针表示的循环单链表
答案:用尾指针表示的单循环链表
s->link=p->link;p->link=s;
s->link=p->link;p=s;
p->link=s;s->link=p;
s->link=p;p->link=s;
答案:s->link=p->link;p->link=s;
p->prior=p->next->next; p->next=p->prior->prior;
p->next->prior=p->prior; p->prior->next=p->next;
p->prior->next=p; p->prior=p->prior->prior;
p->next=p->next->next; p->next->prior=p;
答案:p->next->prior=p->prior; p->prior->next=p->next;
B和C
单链表
静态链表
顺序表
答案:单链表
7
8
63.5
63
答案:63.5
145
144
147
148
答案:144
p->data == -1
p->next == NULL
p->next == h
p->next->next == h
答案:p->next == h
*p的直接后继是头结点
p指向尾结点
p指向头结点
*p的直接后继是尾结点
答案:*p的直接后继是尾结点
必须是连续的
一定是不连续的
部分地址必须是连续的
连续不连续都可以
答案:连续或不连续都可以
p->next=p;
p->next=p->next->next;
p=p->next;
p=p->next->next;
答案:p->next=p->next->next;
可以提高存取元素的速度
使空表和非空表的处理统一
可以加快对表的遍历
节省存储空间
答案:使空表和非空表的处理统一
顺序访问相邻结点更加灵活
插入、删除操作更加简单
可以随机访问
可以省略表头指针或表尾指针
答案:顺序访问相邻结点更灵活
双向链表
单循环链表
顺序表
单链表
答案:顺序表
不必事先估计所需存储空间大小
随机访问
插入与删除时不必移动元素
所需空间与线性表长度成正比
答案:随机访问
(n+1)/2
n
n/2
(n-1)/2
答案:n/2
错
对
答案:√
4
3
2
5
答案:4
错
对
答案:错