数据结构各习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构各章习题
第1章绪论
一、名词解释
数据数据项数据元素数据结构数据逻辑结构数据物理结构算法算法的时间复杂性
二、单项选择题
1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。
① A.操作对象B.计算方法C.逻辑结构D.数据映象
② A.存储结构B.关系C.运算D.算法
2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②有限集合。
① A.算法B.数据元素C.数据操作D.数据对象
② A.操作B.映象C.存储D.关系
3. 在数据结构中,从逻辑上可以把数据结构分成。
A.动态结构和静态结构B.紧凑结构和非紧凑结构
C.线性结构和非线性结构D.内部结构和外部结构
4. 算法分析的目的是①,算法分析的两个主要方面是②。
① A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系
C. 分析算法的效率以求改进
D. 分析算法的易懂性和文档性
② A. 空间复杂性和时间复杂性 B. 正确性和简明性
C. 可读性和文档性
D. 数据复杂性和程序复杂性
5.算法指的是。
A. 计算方法
B. 排序方法
C. 解决问题的有限运算序列
D. 调度方法
6. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。
A.存储结构
B.逻辑结构
C.链式存储结构
D.顺序存储结构
三、填空题(将正确的答案填在相应的空中)
1. 数据逻辑结构包括、、和四种类型
2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。
3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。
4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。
5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。
6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。
四、分析下列算法的时间复杂度:
1.sum=0;
for (i=1;i<=n;i++)
{sum=sum+i;}
2.i=1;
while(i<=n)
i=i*10;
3.sum=0;
for(i=0;i for(j=0;j sum=sum+Array[i][j]; 4. s =0; for( I =0; i for(j=0;j s +=B[i][j]; sum = s ; 5. for( i =0; i for(j=0;j A[i][j] = 0; 6. i = 0; while(i<=n) i = i * 3; 第2章线性表 一、单项选择题 1. 一个向量(即一批地址连续的存储单元)第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是__ __。 A. 110 B. 108 C. 100 D. 120 2. 线性表的逻辑顺序与存储顺序总是一致的,这种说法__ _。 A. 正确 B. 不正确 3. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址__ _。 A. 必须是连续的 B. 部分地址必须是连续的 C. 一定是不连续的 D. 连续或不连续都可以 4. 在以下的叙述中,正确的是__ _。 A.线性表的顺序存储结构优于链表存储结构 B.线性表的顺序存储结构适用于频繁插入/删除数据元素的情况 C.线性表的链表存储结构适用于频繁插入/删除数据元素的情况 D.线性表的链表存储结构优于顺序存储结构 5.在等概率情况下,顺序表的插入操作要移动______结点。 A.全部B.一半 C.三分之一D.四分之一 6. 不带头结点的单链表head为空的判定条件是____。 A. head= =NULL B. head->next= =NULL C. head->next= =head D. head!=NULL 7. 带头结点的单链表head为空的判定条件是____。 A. head= =NULL B. head->next= =NULL C. head->next= =head D. head!=NULL 8. 非空的循环单链表head的尾结点(由p所指向)满足____。 A. p->next= =NULL B. p= =NULL C. p->next= =head D. p= =head 9. 在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行____。 A. s->next=p->next; p->next=s; B. p->next=s->next; s->next=p; B. q->next=s; s->next=p; C. p->next=s; s->next=q; 10. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行____。 A. s->next=p; p->next=s; B. s->next=p->next; p->next=s; C. s->next=p->next; p=s; C. p->next=s; s->next=p; 11. 在一个单链表中,若删除p所指结点的后续结点,则执行____。 A. p->next= p->next->next; B. p= p->next; p->next= p->next->next; C. p->next= p->next; D. p= p->next->next; 12. 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较____个结点。 A. n B. n/2 C. (n-1)/2 D. (n+1)/2 13. 在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是__ __。 A. O(1) B. O(n) C. O (n2) D. O (nlog2n) 14. 给定有n个元素的向量,建立一个有序单链表的时间复杂度是__ __。 A. O(1)) B. O(n) C. O (n2) D. O (n*log2n) 15.在n个结点的线性表的数组实现中,算法的时间复杂度是O(1)的操作是。 A.访问第i(1<=i<=n)个结点和求第i个结点的直接前驱(1 B.在第i(1<=i<=n)个结点后插入一个新结点 C.删除第i(1<=i<=n)个结点 D.以上都不对 二、填空题 1. 单链表可以做__ __的链接存储表示。 2. 在双链表中,每个结点有两个指针域,一个指向____ __,另一个指向___ __。 3. 在一个单链表中p所指结点之前插入一个s (值为e)所指结点时,可执行如下操作: q=head; while (q->next!=p) q=q->next; s= new Node; s->data=e; q->next= ; //填空