数据结构练习题及部分答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章绪论
一.选择题
1.数据结构被形式地定义为(K,R),其中K是①的有限集合,R是K上的②的有限集合。
①A.算法B.数据元素C.数据操作D.逻辑结构
②A.操作B.映象C.存储D.关系
2.算法分析的目的是①,算法分析的两个主要方面是②。
①A.找出数据结构的合理性
B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进
D.分析算法的易懂性和文档性
②A.空间复杂性和时间复杂性
B.正确性和简明性
C.可读性和文档性
D.数据复杂性和程序复杂性
3.在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为A.逻辑结构B.顺序存储结构
C.链表存储结构D.以上都不对
4.数据结构中,在逻辑上可以把数据结构分成:( )。
A.动态结构和静态结构B.紧凑结构和非紧凑结构
C.线性结构和非线性结构D.内部结构和外部结构
5.以下属于顺序存储结构优点的是()。
A.存储密度大B.插入运算方便
C.删除运算方便D.可方便地用于各种逻辑结构的存储表示
6.数据结构研究的内容是()。
A.数据的逻辑结构B.数据的存储结构
C.建立在相应逻辑结构和存储结构上的算法D.包括以上三个方面
7.链式存储的存储结构所占存储空间()。
A.分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B.只有一部分,存放结点值
C.只有一部分,存储表示结点间关系的指针
D.分两部分,一部分存放结点值,另一部分存放结点所占单元数
8.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。
(1)A. 计算方法 B.排序方法
C. 解决问题的有限运算序列
D.调度方法
(2)A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性
C.确定性,有穷性和稳定性
D.易读性,稳定性和安全性
9.以下关于数据的逻辑结构的叙述中正确的是()。
A.数据的逻辑结构是数据间关系的描述
B.数据的逻辑结构反映了数据在计算机中的存储方式
C.数据的逻辑结构分为顺序结构和链式结构
D.数据的逻辑结构分为静态结构和动态结构
10.算法分析的主要任务是()。
A.探讨算法的正确性和可读性B.探讨数据组织方式的合理性C.为给定问题寻找一种性能良好的解决方案D.研究数据之间的逻辑关系
11计算机内部数据处理的基本单位是()。
A.数据
B.数据元素
C.数据项
D.数据库
二、填空题
1.下面程序段的时间复杂度是____________。
for (I=1; I for (j=1; j for (k=1; k 2.下面程序段的时间复杂度是____________。 s=0; for(i=0;i for(j=0; j s+=b[i][j]; sum=s; 3. 数据结构按逻辑结构可分为两大类,分别是________和______。 4. 一个算法的效率可分为____________效率和__________效率。 5. 设n 为正整数。下列程序段中前置以记号@的语句的频度为________。 i=1;k=0; while(i<=n-1){ @ k+=10*i; i++; } 6算法时间复杂度的分析通常有两种方法,即___________和___________的方法,通常我们 对算法求时间复杂度时,采用后一种方法。 第二次作业 1. 对以下单链表分别执行下列各程序段,画出结果示意图。 (1) Q=P->next; (2) S=P->next->next; (3) R->data=P->data; (4) R->data=P->next->data; (5) T=P; while(T!=NULL){ T->data=T->data*2;T=T->next;} 2. 简述以下算法的功能。 Status A(LinkList L) { //L 是无表头结点的单链表 if(L&&L->next){ Q=L; L=L->next; P=L; while(P->next) P=P->next; P->next=Q; Q->next=NULL; } P R … return OK; }//A 3.写一算法在带头结点的单链表结构上实现线性表操作LOCA TE(L,x)。(求x在单链表L 中的位序) 4.写一算法在带头结点的单链表结构上实现线性表操作LENGTH(L)。(求单链表L中的 元素个数) 5.选择题 (1).对于一个头指针为head的带头结点的单链表,判定该表为空表的条件是()A.head==NULL B.head→next==NULL C.head→next==head D.head!=NULL (2).完成在双循环链表结点p之后插入s的操作是() A.p->next=s ; s->prior=p; p->next->prior:=s ; s->next=p->next; B.p->next->prior=s; p->next=s; s->prior=p; s->next:=p->next; C.s->prior=p; s->next:=p->next; p->next=s; p->next->prior=s ; D.s->prior=p; s->next:=p->next; p->next->prior=s ; p->next=s; (3).线性表是具有n个()的有限序列。 A.表元素B.字符C.数据元素D.数据项 (4).下面关于线性表的叙述中,错误的是哪一个?() A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。 (5).若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。 A.顺序表B.双链表C.带头结点的双循环链表D.单循环链表 (6).线性表是________。 A.一个有限序列,可以为空B.一个有限序列,不可以为空 C.一个无限序列,可以为空D.一个无限序列,不可以为空 (7).链表不具有的特点是() A.插入、删除不需要移动元素B.可随机访问任一元素 C.不必事先估计存储空间D.所需空间与线性长度成正比 (8).在______运算中,使用顺序表比链表好。 A.插入B.删除 C.根据序号查找D.根据元素值查找 (9).在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,