数据结构复习题第章答案

合集下载

数据结构各章习题及答案

数据结构各章习题及答案

数据结构习题及解答第1章 概述【例1-1】分析以下程序段的时间复杂度。

for(i=0;i<n;i++)for(j=0;j<m;j++) A[i][j]=0;解:该程序段的时间复杂度为O (m*n )。

【例1-2】分析以下程序段的时间复杂度。

i=s=0; ①while(s<n){ i++; ②s+=i; ③}解:语句①为赋值语句,其执行次数为1次,所以其时间复杂度为O (1)。

语句②和语句③构成while 循环语句的循环体,它们的执行次数由循环控制条件中s 与n 的值确定。

假定循环重复执行x 次后结束, 则语句②和语句③各重复执行了x 次。

其时间复杂度按线性累加规则为O (x )。

此时s 与n 满足关系式:s ≥n ,而s=1+2+3+…+x 。

所以有:1+2+3+…+x ≥n ,可以推出:x=n n 241212811+±-=+±-x 与n 之间满足x=f(n ),所以循环体的时间复杂度为O (n ),语句①与循环体由线性累加规则得到该程序段的时间复杂度为O (n )。

【例1-3】分析以下程序段的时间复杂度。

i=1; ①while(i<=n) i=2*i; ②解:其中语句①的执行次数是1,设语句②的执行次数为f (n ),则有:n n f ≤)(2。

得:T(n)=O(n2 log)【例1-4】有如下递归函数fact(n),分析其时间复杂度。

fact(int n){ if(n<=1) return(1); ①elsereturn(n*fact(n-1)); ②}解:设fact(n)的运行时间函数是T(n)。

该函数中语句①的运行时间是O(1),语句②的运行时间是T(n-1)+ O(1),其中O(1)为常量运行时间。

由此可得fact(n)的时间复杂度为O(n)。

习题1一、单项选择题1.数据结构是指(1. A )。

A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(2. C )。

数据结构复习习题和答案(DOC)

数据结构复习习题和答案(DOC)

第一章绪论一、单项选择题1.数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和操作等的学科。

① A.操作对象 B.计算方法 C·逻辑存储 D.数据映象② A.结构 B.关系 C.运算. D.算法2.数据结构被形式地定义为(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.调度方法② A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D.易读性、稳定性和安全性6. 线性表的逻辑顺序与存储顺序总是一致的,这种说法()。

A. 正确 B.不正确7. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。

A. 必须是连续的 B.部分地址必须是连续的C. 一定是不连续的D. 连续或不连续都可以8.数据结构通常是研究数据的()及它们之间的相互联系。

A.存储和逻辑结构 B.存储和抽象C.理想与抽象 D.理想与逻辑9.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()。

A.存储结构 B.逻辑结构 C.顺序存储结构 D.链式存储结构11.非线性结构是数据元素之间存在一种()。

(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)⼀、算法设计题(每题15分,共60分)答题要求:①⽤⾃然语⾔说明所采⽤算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③写出对应的算法程序,并做必要的注释。

1、有⼀个带头结点的单链表,每个结点包括两个域,⼀个是整型域info,另⼀个是指向下⼀个结点的指针域next。

假设单链表已建⽴,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留⼀个。

3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个⼈按顺时针⽅向围坐成⼀圈,现从第s个⼈开始按顺时针⽅向报数,数到第m个⼈出列,然后从出列的下⼀个⼈重新开始报数,数到第m的⼈⼜出列,…,如此重复直到所有的⼈全部出列为⽌。

现要求采⽤循环链表结构设计⼀个算法,模拟此过程。

4、编程实现单链表的就地逆置。

23.在数组 A[1..n]中有n个数据,试建⽴⼀个带有头结点的循环链表,头指针为h,要求链中数据从⼩到⼤排列,重复的数据在链中只保存⼀个.5、设计⼀个尽可能的⾼效算法输出单链表的倒数第K个元素。

3、假设以I和O分别表⽰⼊栈和出栈操作。

栈的初态和终态均为空,⼊栈和出栈的操作序列可表⽰为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为⾮法序列。

(15分)(1)下⾯所⽰的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出⼀个算法,判定所给的操作序列是否合法。

若合法,返回true,否则返回false(假定被判定的操作序列已存⼊⼀维数组中)。

5、设从键盘输⼊⼀整数的序列:a1, a2, a3,…,an,试编写算法实现:⽤栈结构存储输⼊的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。

算法应对异常情况(⼊栈满等)给出相应的信息。

设有⼀个背包可以放⼊的物品重量为S,现有n件物品,重量分别为W1,W2,...,W n。

数据结构各章复习题与答案

数据结构各章复习题与答案

第二章线性表一.名词解释线性结构 2.数据结构的顺序实现 3.顺序表 4.链表二、填空题1.为了便于讨论,有时将含n(n>=0)个结点的线性结构表示成(a1,a2,……an),其中每个ai 代表一个______。

a1称为______结点,an称为______结点,i称为ai在线性表中的________或______。

对任意一对相邻结点ai 、ai┼1(1<=i<n),ai称为ai┼1的直接______ai┼1称为ai的直接______。

2.线性结构的基本特征是:若至少含有一个结点,则除起始结点没有直接______外,其他结点有且仅有一个直接______;除终端结点没有直接______外,其它结点有且仅有一个直接______.3.表长为O的线性表称为______4.线性表典型的基本运算包括:______、______、______、______、______、______等六种。

5.顺序表的类型定义可经编译转换为机器级。

假定每个datatype类型的变量占用k(k>=1)个内存单元,其中,b是顺序表的第一个存储结点的第一个单元的内存地址,那么,第i个结点ai的存储地址为______。

6.以下为顺序表的插入运算,分析算法,请在______处填上正确的语句。

Void insert_sqlist(sqlist L,datatype x,int i)/*将X插入到顺序表L的第i-1个位置*/{ if( st == maxsize) error(“表满”);if((i<1)||(i>st+1))error(“非法位置”);for(j=st;j>=i;j--)______;L.data[i-1]=x;st=st+1;}7.对于顺序表的插入算法insert_sqlist来说,若以结点移动为标准操作,则插入算法的最坏时间复杂性为________,量级是________。

插入算法的平均时间复杂性为________,平均时间复杂性量级是________。

大二数据结构复习-第1-2章(带答案)

大二数据结构复习-第1-2章(带答案)

《数据结构》第1-2章练习题一、选择1、通常从正确性、易读性、健壮性、高效性等四个方面评价算法(包括程序)的质量。

以下解释错误的是( )A、正确性算法应能正确地实现预定的功能(即处理要求)B、易读性算法应易于阅读和理解以便于调试修改和扩充C、健壮性当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果D、高效性即达到所需要的时间性能2、以下说法正确的是 ( )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、若线性表最常用的操作是存取第i个元素及其前驱的值,则采用()存储方式节省时间A、单链表B、双向链表C、单循环链表D、顺序表顺序表可以随机存取8、设指针P指向双链表的某一结点,则双链表结构的对称性可用()式来刻画A、p->prior->next->==p->next->nextB、p->prior->prior->==p->next->priorC、p->prior->next->==p->next->priorD、p->next->next==p->prior->prior9、以下说错误的是()A、对循环来说,从表中任一结点出发都能通过前后操作而扫描整个循环链表B、对单链表来说,只有从头结点开始才能扫描表中全部结点C、双链表的特点是找结点的前趋和后继都很容易D、对双链表来说,结点*P的存储位置既存放在其前趋结点的后继指针域中,也存放在它的后继结点的前趋指针域中。

数据结构习题(包含全部答案解析)

数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。

A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。

A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。

A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。

A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。

A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。

A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。

数据结构各章习题及答案

数据结构各章习题及答案

数据结构各章习题及答案第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。

(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。

①(A)数据元素(B)计算方法(C)逻辑存储(D)数据映像②(A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。

(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。

① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法②(A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。

()2.算法就是程序。

()3.数据元素是数据的最小单位。

()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。

()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。

()三、填空题1.数据逻辑结构包括________、________、_________ 和_________四种类型,其中树形结构和图形结构合称为_____。

2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______个前驱结点;最后一个结点______后续结点,其余每个结点有且只有_______个后续结点。

3.在树形结构中,树根结点没有_______结点,其余每个结点有且只有_______个前驱结点;叶子结点没有________结点,其余每个结点的后续结点可以_________。

数据结构考试试题库含答案解析

数据结构考试试题库含答案解析

数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和⼴义表 (8)第六章树和⼆叉树 (8)第七章图 (11)第⼋章查找 (13)第九章排序 (14)简答题 (19)第⼀章绪论 (19)第⼆章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和⼴义表 (29)第六章树和⼆叉树 (31)第七章图 (36)第⼋章查找 (38)第九章排序 (39)编程题 (41)第⼀章绪论 (41)第⼆章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和⼴义表 (52)第六章树和⼆叉树 (52)第七章图 (52)第⼋章查找 (52)第⼀章绪论1.数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。

A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。

A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7.算法分析的主要⽅法(A )。

数据结构复习题目及答案

数据结构复习题目及答案

《数据结构-C语言版》第一章绪论单项选择题1.在数据结构中,数据的基本单位是_________。

A.数据项B.数据类型C.数据元素D.数据变量2.数据结构中数据元素之间的逻辑关系被称为______。

A.数据的存储结构B.数据的基本操作C.程序的算法D.数据的逻辑结构3.在数据结构中,与所使用计算机无关的是数据的_______。

A.存储结构B.逻辑和物理结构C.逻辑结构D.物理结构4.在链式存储结构中,数据之间的关系是通过________体现的。

A.数据在内存的相对位置B.指示数据元素的指针C.数据的存储地址D.指针5.计算算法的时间复杂度是属于一种_______。

A.事前统计的方法B.事前分析估算的方法C.事后统计的方法D.事后分析估算的方法6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是______。

2A.nB.nlognC.nD.logn7.设使用某算法对n个元素进行处理,所需的时间是T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为_______。

A.O(1)B.O(n)C.O(200n)D.O(nlog2n)1CDCBBDD第二章线性表单项选择题1.链表不具有的特点是________。

A.可随机访问任一元素B.插入和删除时不需要移动元素C.不必事先估计存储空间D.所需空间与线性表的长度正比2.设顺序表的每个元素占8个存储单元。

第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为。

A.139B.140C.147D.1483.在线性链表存储结构下,插入操作算法。

A.需要判断是否表满B.需要判断是否表空C.不需要判断表满D.需要判断是否表空和表满4.在一个单链表中,若删除p所指结点的后继结点,则执行。

A.p->next=p->next->next;B.p->next=p->next;C.p=p->next->next;D.p=p->next;p->next=p->next->next;5.将长度为 n的单链表接在长度为m的单链表之后的算法时间复杂度为。

数据结构复习参考题与参考答案

数据结构复习参考题与参考答案

第一章概论自测题答案一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。

2. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。

3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

4. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

8. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。

9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

11. 一个算法的效率可分为时间效率和空间效率。

二、单项选择题(B)1. 非线性结构是数据元素之间存在一种:A)一对多关系 B)多对多关系C)多对一关系 D)一对一关系( C )2. 数据结构中,与所使用的计算机无关的是数据的结构;A) 存储 B) 物理C) 逻辑 D) 物理和存储(C)3. 算法分析的目的是:A) 找出数据结构的合理性B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进D) 分析算法的易懂性和文档性(A)4. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性B) 正确性和简明性C) 可读性和文档性D) 数据复杂性和程序复杂性(C )5. 计算机算法指的是:A) 计算方法B) 排序方法C) 解决问题的有限运算序列D) 调度方法(B)6. 计算机算法必须具备输入、输出和等5个特性。

《数据结构01》复习题_答案

《数据结构01》复习题_答案

一选择题(每小题2分,共20分)1.数据结构中,与所使用的计算机无关的是数据的 ___c___结构;A)存储 B)物理 C)逻辑 D)物理和存储2.算法分析的目的是:cA)找出数据结构的合理性 B)研究算法中的输入和输出的关系C)分析算法的效率以求改进 D)分析算法的易懂性和文档性3.计算机算法必须具备输入.输出和_b______等5个特性.A)可行性、可移植性和可扩充性 B)可行性、确定性和有穷性C)确定性、有穷性和稳定性D)易懂性、稳定性和安全性4.一个向量第一个元素的存储地址是100 ,每个元素的长度为2 ,则第5个元素的地址是 ___b____A)110 B)108 C)100 D)1205设有两个串p和q ,求q在p中首次出现的位置的运算称作:A) 连接 B)模式匹配 C)求子串 D) 求串长6 .向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变 ,平均要移动____b___ 个元素A)8 B)63.5 C)63 D) 77设矩阵 A 是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B[1,n(n-1)/2]中,对下三角部分中任一元素a(i≤j),在一维数组B中下i,j标K的值是:(矩阵是A[1][1]开始)BA)i(i-1)/2+j-1 B)i(i_1)/2+j C)i(i+1)/2+j-1 D) i(i+1)/2+j8. 二叉树是非线性数据结构,所以__c_____A) 它不能用顺序存储结构存储 B)它不能用链式存储结构存储C)顺序存储结构和链式存储结构都能存储 D)顺序存储结构和链式存储结构都不能使用9. 有8个结点的无向连通图最少有 __c_____ 条边(边数=节点-1)A) 5 B) 6 C) 7 D) 810. 所有排序方法中, 关键字比较的次数与记录的初始排列次数无关的是___d____A)希尔 B) 冒泡 C) 插入 D) 选择二.填空题(每小题2分,共20分)1. 数据的存储结构可用四种基本的存储方法表示,它们分别是顺序_______、链式_______、索引_______ 和散列_______。

数据结构复习考试题第1章答案2014516

数据结构复习考试题第1章答案2014516

第1章绪论一、选择题(每小题2分,共20分)1.以下哪一个不是算法的特性()。

A.有穷性B.确定性C.简洁性D.可行性2.数据结构的定义为(D,S),其中D是( )的集合。

A. 算法B. 数据元素C. 数据操作D. 逻辑结构3.设n是描述问题规模的非负整数,下面程序片段的时间复杂度是()。

x=2;while(x<n/2) x=2*x ;A. O(log2n)B. O(n)C. O(nlog2n)D. O(n2)4.执行下面程序段时,执行S语句的次数为().for (int i=1;i<=n;i++)for (int j=1; j<=i; j++) S;A. n²B. n²/2C. n(n+1)D. n(n+1)/25.在下面的程序段中,对x的赋值语句的频度为()。

for(i=1;i<=n;i++)for(j=1;j<=n;j++) x=x+1;A. O(2n)B. O(n)C. O(n2)D. O(log2n)6.在数据结构的讨论中把数据结构从逻辑上分为()。

A. 内部结构与外部结构B. 静态结构与动态结构C. 线性结构与非线性结构D. 紧凑结构与非紧凑结构。

7.下面程序段的时间复杂度为( C )for (int i=0 ;i<m ;i++)for (int j=0 ;j<n ;j++) a[i][j]=i*j ;A.O(m2)B.O(n2)C.O(m*n)D.O(m+n)8.算法的计算量的大小称为计算的()。

A.效率 B. 复杂性 C. 现实性 D. 难度9.数据结构在计算机内存中的表示是指()。

A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系10.在数据结构中,与所使用的计算机无关的是数据的()结构。

A.逻辑 B.存储 C.逻辑和存储 D.物理11.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。

数据结构复习题参考答案

数据结构复习题参考答案

数据结构总复习第一部分课后习题第一章课后习题P16 1、2、5、6、9第三章课后习题P66 2、3第四章课后习题P88 1第五章课后习题P102 1、2第六章课后习题P134-135 1、3、16、18完成P137 实验二构造哈夫曼编码第七章课后习题P177 1、2、4、8、10第二部分综合习题一、单项选择题1.如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是(C )A. 栈B. 队列C. 树D. 图2.下面程序段的时间复杂度为(B )for (i=0; i<m; i++)for (j=0; j<n; j++)A[i][j]=i*j;A. O (m2)B. O (n2)C. O (m*n)D. O (m+n)3.在头指针为head的非空单循环链表中,指针p指向尾结点,下列关系成立的是( A )A. p->next==headB. p->next->next==headC. p->next==NULLD. p==head4.若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列是( D )A. SXSSXXXXB. SXXSXSSXC. SXSXXSSXD. SSSXXSXX5.两个字符串相等的条件是(D )A. 串的长度相等B. 含有相同的字符集C. 都是非空串D. 串的长度相等且对应的字符相同6.已知一棵含50个结点的二叉树中只有一个叶子结点,则该树中度为1的结点个数为( D )A. 0B. 1C. 48D. 497.算法分析的目的是:(C )(A)找出数据结构的合理性(B)研究算法中输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性8.用链表表示线性表的优点是:( C )(A)便于随机存取(B)花费的存储空间比顺序表少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同9.在数组表示的循环队列中,front、rear分别为队列的头、尾指针,maxsize为数组的最大长度,队满的条件是:( D )(A)front=rear (B)rear=maxsize(C)rear=front (D)(rear+1)%maxsize=front10.若已知一棵二叉树先序序列为ABCDEFG,中序序列为CBDAEGF,则其后序序列为:( A )(A)CDBGFEA (B)CDBFGEA(C)CDBAGFE (D)BCDAGFE11.执行下列程序段,执行S的次数(S这段程序的时间复杂度)是:(D )for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)S;(A)n2 (B)n2/2 (C)n(n+1) (D)n(n+1)/212.以下数据结构中哪一个是非线性结构的是:( D )(A)队列(B)栈(C)线性表(D)图13.设有6个结点的无向图,该图至少有多少条边才能确保是一个连通图:(A )(A)5 (B)6 (C)7 (D)814.树形结构数据元素之间的关系是:( C )(A)一对一关系(B)多对多关系(C)一对多关系(D)多对一关系15.一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是:( C )(A)edcba (B)decba (C)dceab (D)abcde16.静态查找和动态查找的根本区别在于:(B )(A)它们的逻辑结构不一样(B)施加在其上的操作不同(C)所包含的数据元素的类型不一样(D)存储的实现不一样17.关键路径是AOE网中:(A )(A)从源点到终点的最长路径(B)从源点到终点的最短路径(C)最长的回路(D)最短的回路18.采用折半查找方法进行查找,数据文件为,且限于;(A )(A)有序表顺序存储结构(B)有序表链式存储结构(C)随机表顺序存储结构(D)随机表链式存储结构19.一个高度为h的完全二叉树共有n个结点,其中m个叶子结点,则下列式子成立的是( D )(A)n=h+m (B)h+m=2n (C)m=h-1 (D)n=2m-120.下列说法中不正确的是:(C )(A)数组时一种线性结构(B)数组是一种定长的线性结构(C)除了插入和删除操作外,数组的基本操作还有存取、修改、检索和排序等(D)数组的基本操作有存取、修改、检索和排序等,没有插入与删除操作21.设无向图G有n个顶点e条边,则该无向图中所有顶点的度之和为:( D )(A)n (B)e (C)2n (D)2e22.对下面的无向图进行广度优先搜索后所得到的顶点访问序列,正确的是:(A )(A)ABDEFC (B)ABFEDC (C)ADCBEF (D)ADCBFE23.若某线性表中最常用的操作是取第i 个元素和找第i个元素的前趋元素,则采用( D )存储方式最节省时间。

《数据结构与算法》章节测试答案

《数据结构与算法》章节测试答案

数据结构与算法章节测试答案第一章:数据结构简介1.1 什么是数据结构?数据结构是一种组织和存储数据的方式,它定义了数据的组织形式、访问方式和操作方式。

数据结构包括线性结构、树结构、图结构等。

1.2 数据结构的作用和重要性数据结构的作用是提供了一种有效地存储和操作数据的方法,能够更高效地解决问题。

数据结构的重要性体现在以下几个方面:•数据结构是算法的基础,不同的数据结构适用于不同类型的问题和算法。

•数据结构能够提高程序的执行效率,减少资源的浪费。

•数据结构的设计和选择与程序的可维护性和可扩展性有关。

1.3 常见的数据结构类型常见的数据结构类型包括:•数组(Array)•链表(Linked List)•栈(Stack)•队列(Queue)•树(Tree)•图(Graph)•哈希表(Hash Table)•堆(Heap)第二章:算法简介2.1 什么是算法?算法是一系列有序步骤的集合,用于解决特定问题的一种方法或过程。

算法可以被实现为计算机程序。

2.2 算法的特性一个好的算法应该具备以下特性:•正确性:算法能够得出正确的结果。

•可读性:算法的代码可读性好,方便理解和维护。

•效率:算法应该能够以高效的方式解决问题,时间和空间复杂度较低。

•易用性:算法应该易于使用和实现。

2.3 常见的算法类型常见的算法类型包括:•搜索算法(如二分查找、深度优先搜索、广度优先搜索)•排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序)•图算法(如最短路径算法、最小生成树算法)•动态规划算法•贪心算法第三章:数据结构与算法实现3.1 数据结构的实现方式数据结构可以通过以下几种方式进行实现:•数组:使用连续的内存空间存储数据。

•链表:通过节点间的指针连接来存储数据。

•栈和队列:使用数组或链表实现。

•堆:使用数组实现的二叉树结构。

•树和图:使用节点和连接来表示。

3.2 算法的实现方式算法可以通过编程语言来实现。

常用的编程语言如C++、Java、Python等都提供了对于数据结构和算法的支持。

数据结构(Java)复习题及答案 1绪论

数据结构(Java)复习题及答案 1绪论

一、单项选择题( B )1. 计算机算法必须具备输入、输出和 等5个特性。

A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性( C )2. 数据结构中,与所使用的计算机无关的是数据的 结构;A) 存储 B) 物理 C) 逻辑 D) 物理和存储( C )3. 算法分析的目的是:A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性( A )4. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性 B) 正确性和简明性C) 可读性和文档性 D) 数据复杂性和程序复杂性( C )5. 计算机算法指的是:A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法6.数据结构是研究数据的(A)和(B)以及它们之间的相互关系,并对这种结构定义相应的 (C),设计出相应的(D),从而确保经过这些运算后所得到的新结构是(E)结构类型。

供选择的答案A.B: 1.理想结构 2.抽象结构 3.物理结构 4逻辑结构C.D.E: 1.运算 2.算法 3.结构 4.规则 5.现在的 6.原来的解答:341267.(A)是描述客观事物的数、字符以及所有能输入到计算机中被计算机程序加工处理的符号的结合。

(B)是数据的基本单位,即数据结合中的个体。

有时一个(B)由若干个 (C)组成,在这种情况下,称(B)为记录。

(C)是数据的最小单位。

(D)是具有相同特性的数据元素的集合。

(E)是带有结构特性的数据元素的结合。

被计算机加工的数据元素不是孤立无关的,它们彼此之间一般存在着某种联系,通常将数据元素的这种联系关系称为 (G)。

算法的计算量和问题规模的联系用(H)表示。

供选择的答案:A-F: 1.数据元素 2.符号 3.记录 4.文件 5.数据 6.数据项 7.数据对象 8.关键字 9.数据结构G: 1.规则 2.集合 3.结构 4.运算H: 1.现实性 2.难度 3.复杂性 4.效率解答:5167933二、判断题1, 数据元素是数据的最小单位。

(完整版) 《数据结构》教材课后习题+答案

(完整版) 《数据结构》教材课后习题+答案

第1章绪论习题1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。

3.简述逻辑结构的四种基本关系并画出它们的关系图。

4.存储结构由哪两种基本的存储方法实现?5.选择题(1)在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。

A.存储结构B.存储实现C.逻辑结构D.运算实现(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。

A.数据具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等(4)以下说法正确的是()。

A.数据元素是数据的最小单位B.数据项是数据的基本单位C.数据结构是带有结构的各数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构(5)以下与数据的存储结构无关的术语是()。

A.顺序队列 B. 链表 C. 有序表 D. 链栈(6)以下数据结构中,()是非线性数据结构A.树B.字符串C.队D.栈6.试分析下面各程序段的时间复杂度。

(1)x=90; y=100;while(y>0)if(x>100){x=x-10;y--;}else x++;(2)for (i=0; i<n; i++)for (j=0; j<m; j++)a[i][j]=0;(3)s=0;for i=0; i<n; i++)for(j=0; j<n; j++)s+=B[i][j];sum=s;(4)i=1;while(i<=n)i=i*3;(5)x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(6)x=n; //n>1y=0;while(x≥(y+1)* (y+1))y++;(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题(1)一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章绪论一、选择题(每小题2分,共20分)1.以下哪一个不是算法的特性()。

A.有穷性B.确定性C.简洁性D.可行性2.数据结构的定义为(D,S),其中D是( )的集合。

A. 算法B. 数据元素C. 数据操作D. 逻辑结构3.设n是描述问题规模的非负整数,下面程序片段的时间复杂度是()。

x=2;while(x<n/2) x=2*x ;A. O(log2n) B. O(n) C. O(nlog2n) D. O(n2)4.执行下面程序段时,执行S语句的次数为().for (int i=1;i<=n;i++)for (int j=1; j<=i; j++) S;A. n2B. n2/2C. n(n+1)D. n(n+1)/25.在下面的程序段中,对x的赋值语句的频度为()。

for(i=1;i<=n;i++)for(j=1;j<=n;j++) x=x+1;A. O(2n)B. O(n)C. O(n2)D. O(log2n)6.在数据结构的讨论中把数据结构从逻辑上分为()。

A. 内部结构与外部结构B. 静态结构与动态结构C. 线性结构与非线性结构D. 紧凑结构与非紧凑结构。

7.下面程序段的时间复杂度为( C )for (int i=0 ;i<m ;i++)for (int j=0 ;j<n ;j++) a[i][j]=i*j ;(m2) (n2) (m*n) (m+n)8.算法的计算量的大小称为计算的()。

A.效率 B. 复杂性 C. 现实性 D. 难度9.数据结构在计算机内存中的表示是指()。

A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系10.在数据结构中,与所使用的计算机无关的是数据的()结构。

A.逻辑 B.存储 C.逻辑和存储 D.物理11.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。

A.数据的处理方法 B.数据元素的类型C.数据元素之间的关系 D.数据的存储方法12.在决定选取何种存储结构时,一般不考虑()。

A.各结点的值如何 B.结点个数的多少C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。

13.算法分析的目的是(),算法分析的两个主要方面是()。

(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系C.分析算法的效率以求改进 D.分析算法的易读性和文档性(2 )A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性 D.数据复杂性和程序复杂性15.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。

A.数据元素具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等16.以下说法正确的是()。

A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构二、判断题(每小题1分,共10分)1.数据元素是数据的最小单位。

()2.算法可以用不同的语言描述,如果用C语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。

()3.数据的逻辑结构是指数据的各数据项之间的逻辑关系。

()4.算法的优劣与算法描述语言无关,但与所用计算机有关。

()5.数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。

( )6.在决定选取何种存储结构时,一般不考虑各结点的值如何。

()7.抽象数据类型(ADT)包括定义和实现两方面,其中定义是独立于实现的,定义仅给出一个ADT的逻辑特性,不必考虑如何在计算机中实现。

( )8.抽象数据类型与计算机内部表示和实现无关。

()9.顺序存储结构只能用于线性结构,不能用于非线性型结构。

()10.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。

()11.在数据结构的讨论中把数据结构从逻辑上分为内部结构与外部结构。

()12.数据项是数据的基本单位。

()三、填空题(每空1分,共10分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

2.根据数据元素之间的关系不同,通常有以下四种结构,、、和网状结构。

3.数据的物理结构主要有_____________和______________两种不同的表示方法。

4.数据元素之间的关系在计算机中有两种不同的表示方法:和5.算法的5个重要特性是_________、__________、__________、输入和输出。

6. 一个算法的效率可分为效率和效率。

7.下面程序段的时间复杂度是。

for (i=0 ;i<n ;i++)for(j=0 ;j<m ;j++) A[i][j]=0 ;8.下面程序段的时间复杂度是_______。

for (i=0 ;i<n;i++)for (j=0 ;j<n ;j++) s+=B[i][j] ;9. 数据结构中评价算法的两个重要指标是算法的__________ 和__________ 。

10.计算机执行下面的语句时,语句s的执行次数为 _______。

FOR(i=l;i<n-l;i++)FOR(j=n ;j>=i ;j--)s ;11.数据结构是研讨数据的__________和__________,以及它们之间的相互关系,并对与这种结构定义相应的__________,设计出相应的__________。

12.数据的物理结构包括_________的表示和_________的表示。

13.一个算法具有5个特性: __________、__________、__________,有零个或多个输入、有一个或多个输出。

14.抽象数据类型的定义仅取决于它的一组_________,而与_________无关,即不论其内部结构如何变化,只要它的__________不变,都不影响其外部使用。

15.一个数据结构在计算机中_________称为存储结构。

16.在有n个选手参加的单循环赛中,总共将进行______场比赛。

17.对于给定的n个元素,可以构造出的逻辑结构有_______,_______,_______,______四种。

18.数据的逻辑结构是指_________________________________________________________。

参考题:20.下面程序段的时间复杂度为________。

(n>1) 答案O(n)sum=1;for (i=0 ;sum<n ;i++) sum+=1 ;21.下面程序段的时间复杂度是( O(log3n) )。

i = 0 ;while (i<=n )i = i * 3 ;22.设m,n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。

例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。

①以下是该函数的程序段,请将未完成的部分填入,使之完整int f(m,n)int m,n;{ if(m==1)return __(1)___;if(n==1){return __(2)___;}if(m<n){return f(m,m);}if (m==n){return 1+__(3)___;}return f+f(m-n,___(4)___);}②执行程序,f(6,4)=_______。

答案① (1)1 (2)1 (3)f(m,n-1) (4)n ② 923.下面程序段的时间复杂度为________。

(n>1) 答案 O(n)sum=1;for (i=0;sum<n;i++) sum+=1;24.下面程序段中带有下划线的语句的执行次数的数量级是_______。

答案log2n2i:=n*n WHILE i<>1 DO i:=i_div_2;25.下面程序段中带下划线的语句的执行次数的数量级是_______。

答案nlog2ni:=1;WHILE i<n BEGIN FOR j:=1 TO n DO_x:=x+1;i:=i*2 END;26.下面程序段中带下划线的语句的执行次数的数量级是:_________答案log2ni:=1; WHILE i<n DO i:=i*2;25.在下面的程序段中,对x的赋值语句的频度为______(表示为n的函数)。

答案1+(1+2++(1+2+3)+…+(1+2+…+n)=n(n+1)(n+2)/6 O(n3) FOR i:=1 TO n DOFOR j:=1 TO i DOFOR k:=1 TO j DOx:=x+delta;27.已知如下程序段FOR i:= n DOWNTO 1 DO {语句1}BEGINx:=x+1; {语句2}FOR j:=n DOWNTO i DO {语句3}y:=y+1; {语句4}END;语句1执行的频度为__________;语句2执行的频度为__________;语句3执行的频度为__________;语句4执行的频度为___________。

答案n+1 n n(n+3)/2 n(n+1)/2。

四、简答题(共10分)1.什么是算法算法的5个特性是什么试根据这些特性解释算法与程序的区别。

2.数据的逻辑结构分为线性结构和非线性结构两大类。

线性结构包括线性表、栈、队列、数组等;非线性结构包括树、图等;这两类结构各自的特点是什么3.简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。

参考题:4.试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别答案简单来说,数据结构定义了一组按某些关系结合在一起的数据元素;抽象数据类型是指一个数学模型以及定义在该模型上的一组操作;而程序设计语言中的数据类型不仅定义了一组带结构的数据元素,而且还在其上定义了一组操作。

5.算法的时间复杂度仅与问题的规模相关吗答案不是,事实上,算法的时间复杂度不仅与问题的规模相关,还与输入实例中的元素取值等相关,但在最坏的情况下,其时间复杂度就是只与求解问题的规模相关的。

我们在讨论时间复杂度时,一般就是以最坏情况下的时间复杂度为准的。

6.常用的存储表示方法有哪几种答案常用的存储表示方法有四种:顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。

由此得到的存储表示称为顺序存储结构。

链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。

相关文档
最新文档