数据结构课后练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构习题
习题一绪论
.1.1 单项选择题
1. 数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和运算等的学科。
①A.操作对象B.计算方法C.逻辑存储D.数据映象
②A.结构B.关系C.运算D.算法
2. 数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②有限集合。
①A.算法B.数据元素C.数据操作D.逻辑结构
②A.操作B.映象C.存储D.关系
3. 在数据结构中,从逻辑上可以把数据结构分成①。
A.动态结构和静态结构B.紧凑结构和非紧凑结构
C.线性结构和非线性结构D.内部结构和外部结构
4. 线性表的顺序存储结构是一种①的存储结构,线性表的链式存储结构是一种②的存储结构。
A.随机存取B.顺序存取C.索引存取D.散列存取
5. 算法分析的目的是①,算法分析的两个主要方面是②。
① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系
C. 分析算法的效率以求改进
D. 分析算法的易懂性和文档性
② A. 空间复杂性和时间复杂性 B. 正确性和简明性
C. 可读性和文档性
D. 数据复杂性和程序复杂性
6. 计算机算法指的是①,它必具备输入、输出和②等五个特性。
①A. 计算方法 B. 排序方法
C. 解决问题的有限运算序列
D. 调度方法
②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性
C. 确定性、有穷性和稳定性
D. 易读性、稳定性和安全性
7. 线性表的逻辑顺序与存储顺序总是一致的,这种说法①。
A. 正确
B. 不正确
8. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址①。
A. 必须是连续的
B. 部分地址必须是连续的
C. 一定是不连续的
D. 连续或不连续都可以
9. 在以下的叙述中,正确的是①。
A.线性表的线性存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
10. 每种数据结构都具备三个基本运算:插入、删除和查找,这种说法①。
A. 正确
B. 不正确
1.2 填空题(将正确的答案填在相应的空中)
1. 数据逻辑结构包括①、②和③三种类型,树形结构和图形结构合称为④。
集合、线性结构、树型结构非线性结构
2. 在线性结构中,第一个结点①前驱结点,其余每个结点有且只有②个前驱结点;最后一个结点③后续结点,其余每个结点有且只有④个后续结点。
无、一、无、一
3. 在树形结构中,树根结点没有①结点,其余每个结点有且只有②个前驱结点,叶子结点没有③结点,其余每个结点的后续结点可以④。
前驱、一、后继、零个至多个
4. 在图形结构中,每个结点的前驱结点数和后续结点数可以①。
任意多个
5. 线性结构中元素之间存在①关系,树形结构中元素之间存在②关系,图形结构中元素之间存在③关系。
一对一、一对多、多对多
6. 算法的五个重要特性是
7. 下面程序段的时间复杂度是①。
for (i=0;i for (j=0;j A[i][j]=0; O(m*n) 8. 下面程序段的时间复杂度是①。 i=s=0; while (s { i++; /*i=i+1*/ s+=i; /*s=s+1*/ } O( ) 9. 下面程序段的时间复杂度是①。 s=0; for (i=0;i for (j=0;j s+=B[i][j]; sum=s; O(n2) 10. 下面程序段的时间复杂度是①。 i=1; while (i<=n) i=i*3; log3n 习题二线性表 一、选择题: 1、在表长为n的顺序表上做插入运算,平均要移动的结点数为()。 A.n B.n/2 C.n/3 D.n/4 2、在一个单链表中,若P所指结点不是最后结点,在P之后插入S所指结点,则执行 () A.S->link=P->link;P->link=S B.P->link=S->link;S->link=P; C.P->link=P;P->link=S; D.P->link=S;S->link=P; 3、在已知头指针的单链表中,要在其尾部插入一新结点,其算法所需的时间复杂度为 () A.O(1)B.O(log2n)C.O(n)D.O(n2) 4、对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为() A.顺序表B.用头指针表示的单循环链表 C.用尾指针表示的单循环链表D.单链表 5、线性表是() A.一个有限序列,可以为空B.一个有限序列,不能为空 C.一个无限序列,可以为空D.一个无限序列,不能为空 6、在n个结点的双链表的某个结点前插入一个结点的时间复杂度是() A.O(n)B.O(1)C.O(log2n)D.O(n2) 7、线性表采用链式存储时,结点的地址() A.必须是连续的B.必须是不连续的 C.连续与否均可D.必须有相等的间隔 8、在单链表中,增加头结点的目的是() A.使单链表至少有一结点B.标志表中首结点位置 C.方便运算的实现D.说明单链表是线性表的链式存储实现 9、带头结点的单链表head为空的判定条件是() A.head = NULL;B.head - > link = NULL; C.head - > link = head;D.head ! = NULL; 10、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度为 () A.O(1)B.O(n)C.O(n2)D.O(log2n) 11、下列有关线性表的叙述中,正确的是() A.线性表中的元素之间是线性关系 B.线性表中至少有一个元素 C.线性表中任何一个元素有且仅有一个直接前趋 D.线性表中任何一个元素有且仅有一个直接后继 12、在单链表中,存储每个结点需有两个域,一个是数据域,另一个是指针域,它指向该 结点的() A.直接前趋B.直接后继C.开始结点D.终端结点 13、将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是()。 A.n B.2n-1 C.2n D.n-1 14、链表不具有的特点是()。 A.随机访问B.不必事先估计存储空间 C.插入删除时不需移动元素D.所需的空间与线性表成正比 15、在一个单链表中,已知q所指结点是p所指结点的直接前趋,若在p,q之间插入s 结点,则执行的操作是()。 A.s->link=p->link;p->link=s; B.q->link=s;s->link=p; C.p->link=s->link;s->link=p; D.p->link=s;s->link=q; 16、链表具有的特点是()。 A.可随机访问任一元素B.插入、删除需要移动元素 C.不必事先估计存储空间D.存储空间是静态分配的 17、一个顺序表一旦说明,其中可用空间大小() A.已固定B.可以改变C.不能固定D.动态变化 18、若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用()存储方式最节省时间。 A.顺序表B.单链表C.双向链表D.单循环链表 19、两个指针P和Q,分别指向单链表的两个元素,P所指元素是Q所指元素的前驱的条