第一章
1.数据结构是一门研究非数值计算的程序设计问题中计算机
的 () 以及它们之间的 () 和运算等的学科。
2.数据的逻辑结构被形式的定义为B=(K,R),其中K是 () 的有限集合,R是K上的
的有限集合。
3.数据结构在计算机内存中的表示是指 () 。
4.在数据结构中,与所使用的计算机无关的是数据的 () 结构。
5.算法分析的目的是 () ,算法分析的两个主要方面是。
6.计算机算法指的是 () ,它必须具备输入,输出和 () 等5个特性。
7.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 () 。
8.以下说法正确的是:()
A 数据元素是数据的最小单位。
B 数据项是数据的基本单位
C 数据结构是带结构的数据项的集合
D 一些表面上很不相同的数据可以有相同的逻辑结构
9.一个数据结构在计算机中的 () 称为存储结构。
10.数据结构,数据元素和数据项在计算机中的映射分别称为存储结构,节点和数据域。
这
个断言正确否?
11.有下列用二元组表示的数据结构,画出]它们分别对应的逻辑结构图形表示,并指出它
们分别属于何种结构。
(1)A=(K,R),其中:K={a,b,c,d,e,f,g,h},
R={<a,b>,<b,c>,<c,d>,<d,e>,<e,f>,<f,g>,<g,h>}
(2)C=(K,R),其中K={1,2,3,4,5,6}
R={<1,2>,<2,3>,<2,4>,<3,4>,<3,5>,<3,6>,<4,5>,<4,6>}
12.下面程序段的时间复杂度。
For(i=0;i<n;i++)
For(j=0;j<m;j++)
A[i][j]=0;
第二章
1.不带头结点的单链表head为空的判定条件是 () 。
2.带头结点的单链表head为空的判定条件是 () 。
3.在循环双链表的p所指结点之前插入s所指结点的操作是 () 。
4.如果最常用的操作是取第i个结点及其前驱,则采用 () 存储方式最节省时间。
5.在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 () 操作与链表的长度
无关.
A 删除单链表中的第一个元素;
B 删除单链表中的最后一个元素;
C 在单链表第一个元素前插入一个新元素;
D 在单链表最后一个元素后插入一个新元素;
6.与单链表相比, 双链表的优点之一是 ()
A 插入、删除操作更简单;
B 可以进行随即访问;
C 可以省略表头指针或表尾指针;
D 顺序访问相邻接点更灵活
7.向一个长度为n的顺序表中的第i个元素(0≤i≤n-1)之前插入一个元素时,须向后移动 ()
个元素.
8.在单链表中,要删除某一指定的结点,必须找到该结点的 () 结点.
9.设有一个顺序表L,其元素为整形数据(无0元素),设计一算法将L中所有小于0的整数放在前半部分,大于0的整数放在后半部分.
10.有一个单链表,其头指针为head,设计一个算法计算数据域为X的结点个数。
11.设有一个循环双链表,其中有一结点的指针为P,设计一个算法将P与其后续结点进行交换。
第三章
1.栈和队列的共同点是 () 。
2.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是 () 。
A edcba
B decba
C dceab
D abcde
3.一个队列的入队序列是1,2,3,4,则队列的输出序列是 () 。
4.判断一个队列Q为空的条件是 () ;为满队列的条件是 () 。
5.在一个队列中,假设f和r分别为队头和队尾指针,则删除一个结点的运算是 () 。
6.栈和队列的区别仅在于 () 。
7.在具有n个单元的循环队列中,队满时共有 () 个元素。
8.设计一个算法,利用栈的基本运算将指定栈中的内容进行逆转。
9.设计一算法,利用栈的基本运算返回指定栈中栈底元素。
10.设计一个算法,利用队列的基本运算返回指定队列中的最后一个元素。
第四章
1.空串与空白串是相同的,这种说法 () 。
2.串是一种特殊的线性表,其特殊性体现在 () 。
3.两个串相等的充分必要条件是 () 。
4.采用顺序结构存储串,设计一个算法计算一个子串在一个字符串中出现的次数,如果该子串不出现则为0。