数据结构与算法第1次_答案

合集下载

罗文劼《数据结构与算法》第4版-第1章课后习题参考答案

罗文劼《数据结构与算法》第4版-第1章课后习题参考答案

第1章绪论1.选择题(1)C (2)B (3)C (4)D (5)B2.判断题(1)√(2)Ⅹ(3)Ⅹ(4)Ⅹ(5)√3.简答题(1)根据数据元素之间的不同逻辑关系,通常将其划分为哪几类结构?【解答】常见的四种逻辑结构有:①集合结构:数据元素间的关系是“属于同一个集合”。

②线性结构:数据元素之间存在着一对一的关系。

③树型结构:数据元素之间存在着一对多的关系。

④图型结构:数据元素之间存在着多对多的关系。

(2)请描述线性结构中数据元素与数据元素之间的关系特点?【解答】线性结构的特点是数据元素之间是一种线性关系,数据元素“一个接一个的排列”。

在线性结构中,有且仅有一个元素被称为“第一个”,除第一个元素之外其他元素均有唯一一个“前驱”;有且仅有一个元素被称为“最后一个”,除最后一个元素之外其他元素均有唯一一个“后继”。

(3)请描述树形结构中数据元素与数据元素之间的关系特点?【解答】树形存储结构,就是数据元素与元素之间存在着一对多关系的数据结构。

在树形存储结构中,树的根节点没有前驱结点,其余的每个节点有且只有一个前驱结点,除叶子结点没有后续节点外,其他节点的后续节点可以有一个或者多个。

(4)常用的存储结构有哪几种,各自的特点是什么?【解答】常见的四种存储结构有:①顺序存储:把逻辑上相邻的元素存储在物理位置相邻的存储单元中。

顺序存储结构是一种最基本的存储表示方法,通常借助于程序设计语言中的数组来实现。

②链接存储:对逻辑上相邻的元素不要求不要求物理位置相邻的存储单元,元素间的逻辑关系通过附设的指针域来表示。

③索引存储:通过建立索引表存储结点信息的方法,其中索引表一般存储结点关键字和一个地点信息,可通过该地址找到结点其它信息。

④散列存储:根据结点的关键字直接计算出该结点的存储地址的方法。

(5)简述算法和程序的区别。

【解答】一个算法若用程序设计语言来描述,则它就是一个程序。

算法的含义与程序十分相似,但又有区别。

一个程序不一定满足有穷性。

数据结构与算法设计-习题1-3

数据结构与算法设计-习题1-3

int
data;
struct Lnode *next;
// 数据域 // 指针域
} LNode, *LinkList; LinkList la, lb; // 单链表的头指针 请用 la 和 lb 中的结点合并生成一个新的非 递增的有序单链表 lc。合并完成后,原来的 la 和 lb 成为空链表。
作者 (时间 2000年) 北京理工大学计算机科学工程系 秦怀青 email qinhq010@
正确且高效的算法如下: Status DeleteK(SqList &a ,int i, int k) {//设线性表元素从a.base[1]起存储,从第i个元素起
删除k个元素。
if ( i<1|| k< 0 || (i+k)>a.length) return ERROR;
for ( j=i+k;j<=a.length; ++j)
操作步骤
1) 建空表 Lc; 2) 依次从 La 或 Lb 中“摘取”元素值较小的
结点插入到 Lc 表中第一个结点之前直至其 中一个表变空为止; 3) 继续将 La 或 Lb 其中一个表的剩余结点插 入在 Lc 表的表头结点之后; 4) 释放 La 表和 Lb 表的表头结点。
作者 (时间 2000年) 北京理工大学计算机科学工程系 秦怀青 email qinhq010@
单链表中逻辑上相邻的元素的物理位置 不一定 紧邻。
(3)在单链表中,除了头结点外,任一结点的存储位置 由 该结点的直接前趋 指示。
(4)在单链表中设置头结点的作用是
在表的第一个元素结点之前插入新元素结点或删除 第一个元素结点不需修改头作指者 针(时间 2000年)

计算机二级数据结构与算法答案(1)

计算机二级数据结构与算法答案(1)

计算机⼆级数据结构与算法答案(1)第⼀章数据结构与算法⼀、选择题:1、栈和队列的共同特点是()A、都是先进先出B、都是后进先出C、只允许在端点处插⼊和删除数据D、没有共同点2、已知⼆叉树的后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是()A、acbedB、decabC、debacD、cedba3、下⾯叙述正确的是()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、在⼀棵⼆叉树上第⼋层的结点数最多是()A、8B、16C、128D、25610、若⼀棵⼆叉树中只有叶结点和左右⼦树皆⾮空的结点,设叶结点的个数为k,则左右⼦树皆⾮空的结点个数是()A、2kB、k-1C、2k-1D、2k-111、设⽆向树T有7⽚树叶,其余顶点数均为3,则T中3度顶点的个数为()A、3B、4C、5D、612、已知⼀棵⼆叉树前序遍历和中序遍历分别为ABDEGCFH 和DBGEACHF,则该⼆叉树的后序遍历为()A、GEDHFBCAB、DGEBFCAC、ABCDEFGHD、ACBFEDHG13、树是结点的集合,它的根结点数⽬是()A、有且只有1个B、1个或多于1个C、0个或1个D、⾄少2个14、下列叙述中正确的是()A\线性表是线性结构B、栈和队列是⾮线性结构C、线性链表是⾮线性结构D、⼆叉树是线性结构15、堆栈存储器存取数据的⽅式是()A、先进先出B、随机存取C\先进后出D、不同于前三种⽅式16、如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()A、e3,e1,e4,e2B、e4,e3,e2,e1C、e3,e4,e1,e2D、任意顺序17、在设计程序时应采⽤的原则之⼀是()A、不限制goto语句的使⽤B、减少或取消注释⾏C、程序越短越好D、程序结构应助于读者理解18、下⾯关于完全⼆叉树的叙述中,错误的是()A、除了最后⼀层外,每⼀层上的结点数均达到最⼤值B、可能缺少若⼲个左右叶⼦结点C、完全⼆叉树⼀般不是满⼆叉树D、具有⼏个结点的完全⼆叉树的深度为log2n+119、下列关于栈的叙述中正确的是()A、在栈中只能插⼊数据B、在栈中只能删除数据C、栈是先进先出的线性别D、栈是先进后出的线性表20、在深度为5的满⼆叉树中,叶⼦结点的个数为()A、32B、31C、16D、1521、⼀个算法应该具有“确定性”等五个特性,下⾯对另外四个特性的描述中错误的是()A、有零个或多个输⼊B、有零个或多个输出C、有穷形D、可⾏性22、若想将数据序列使⽤插⼊排序算法由⼩到⼤排序,则每次放到有序⼦列合适位置上的元素,应从⽆序序列中选择()A、固定位置的B、最⼩的C、任意的D、最⼤的23、算法的空间复杂度是指()A、算法程序的长度B、算法程序中的指令条数C、算法程序所占的存储空间D、执⾏过程中所需要的存储空间24、⽤链表表⽰线性表的优点是()A、便于随机存取B、花费的存储空间较顺序存储少C、便于插⼊和删除操作D、数据元素的物理顺序与逻辑顺序相同25、链表不具备的特点是()A、可随机访问任意⼀个结点B、插⼊和删除不需要移动任何元素C、不必事先估计存储空间D、所需空间与其长度成正⽐26、数据结构中,与所使⽤的计算机⽆关的是数据的()A、存储结构B、物理结构C、逻辑结构D、物理与逻辑结构27、希尔排序法属于()类型的排序法。

华文慕课数据结构与算法(上)(北京大学)章节测验答案

华文慕课数据结构与算法(上)(北京大学)章节测验答案

解忧书店 JieYouBookshop第二章单元测试1、(1分)以下哪种结构是逻辑结构,而与存储和运算无关:Which of the following structure is a logical structure regardless of the storage or algorithm:(There is only one correct answer)A、队列(queue)B、双链表(doubly linked list)C、数组(array)D、顺序表(Sequential list)答案: A2、(1分)计算运行下列程序段后m的值:Calculate the value of m after running the following program segmentn = 9; m = 0;for (i=1;i<=n;i++)for (j = 2*i; j<=n; j++)m=m+1;求m的值答案: 203、(1分)下列说法正确的是:Which options may be correct?(there are more than one correct answers)A、如果函数f(n)是O(g(n)),g(n)是O(h(n)),那么f(n)是O(h(n))【 if f(n) is O(g(n)),g(n) is O(h(n)),then f(n) is O(h(n))】B、如果函数f(n)是O(g(n)),g(n)是O(h(n)),那么f(n)+g(n)是O(h(n))【if f(n) is O(g(n)),g(n) is O(h(n)),so f(n)+g(n) is O(h(n))】C、如果a>b>1,logan是O(logbn),但logbn不一定是O(logan)【if a>b>1,logan is O(logbn),logbn may not be O(logan)】D、函数f(n)是O(g(n)),当常数a足够大时,一定有函数g(n)是O(af(n))【if f(n)是O(g(n)),When constant a is big enough ,there must be g(n) is O(af(n))】答案: A,B4、(1分)由大到小写出以下时间复杂度的序列:答案直接写标号,如:(1)(2)(3)(4)(5) (提示:系统基于字符匹配来判定答案,所以您的答案中不要出现空格)Write the following time complexity in descending sequence:Write down the answer labels such as (1)(2)(3)(4)(5). (Hint:This problem is judged by string matching, Please make sure your answer don't contain any blanks. )RUX4%GXZNDD{IAQWTCSEEJG.png答案: (5)(1)(2)(4)(3)5、(1分)已知一个数组a的长度为n,求问下面这段代码的时间复杂度:An array of a, its length is known as n. Please answer the time complexity of the following code.(There are more than one answers.)for (i=0,length=1;i<n-1;i++){for (j = i+1;j<n && a[j-1]<=a[j];j++)if(length<j-i+1)length=j-i+1;}Screen Shot 2017-09-05 at 23.31.19.pngA、如图,A选项B、如图,B选项C、如图,C选项D、如图,D选项答案: A,B第三章单元测试1、(1分)下面关于线性表的叙述中,正确的是哪些?Which of the followings about linear list are correct?(There are more than one answers.)Select the answer that matchesA、线性表采用顺序存储,必须占用一片连续的存储单元。

软件设计师数据结构与算法(一)

软件设计师数据结构与算法(一)

[模拟] 软件设计师数据结构与算法(一)选择题第1题:循环链表的主要优点是______。

A.不再需要头指针了B.已知某个结点的位置后,能很容易找到它的直接前驱结点C.在进行删除操作后,能保证链表不断开D.从表中任一结点出发都能遍历整个链表参考答案:D第2题:表达式a*(b+c)-d的后缀表达式为______。

A.abcd*+-B.abc+*d-C.abc*+d-D.-+*abcd参考答案:B第3题:若二叉树的先序遍历序列为ABDECF,中序遍历序列为DBEAFC,则其后序遍历序列为______。

A.DEBAFCB.DEFBCAC.DEBCFAD.DEBFCA参考答案:D第4题:无向图中一个顶点的度是指图中______。

A.通过该顶点的简单路径数B.通过该顶点的回路数C.与该顶点相邻的顶点数D.与该顶点连通的顶点数参考答案:C第5题:利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素30要进行______次元素间的比较。

A.4B.5C.6D.7参考答案:B第6题:在常用的描述二叉排序树的存储结构中,关键字值最大的结点______。

A.左指针一定为空B.右指针一定为空C.左、右指针均为空D.左、右指针均不为空参考答案:B第7题:一个具有n(n>0)个顶点的连通无向图至少有______条边。

A.n+1B.nC.n/2D.n-1参考答案:D第8题:由权值为9,2,5,7的4个叶子结点构造一棵哈夫曼树,该树的带权路径长度为______。

A.23B.37C.44D.46参考答案:C第9题:在最好和最坏情况下的时间复杂度均为O(nlog<sub>2</sub>n)且稳定的排序方法是______。

A.基数排序B.快速排序C.堆排序D.归并排序参考答案:D第10题:己知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key)=key % 7计算散列地址,并散列存储在散列表A[0,…,6]中,若采用线性探测方法解决冲突,则在该散列表上进行等概率成功查找的平均查找长度为______。

数据结构与算法习题与答案

数据结构与算法习题与答案

A .大于 1
B.等于 1
C. 小于 1 D.不能确定
( 8)将两个各有 n 个元素的有序表归并成一个有序表,其最少的比较次数是(
)。
A.n
B .2n-1
C. 2n
D .n-1
( 9)在一个长度为 n 的顺序表中,在第 i 个元素( 1≤ i≤ n+1 )之前插入一个新元素时
须向后移动( )个元素。
(15) 在双向循环链表中,在 p 指针所指的结点后插入 q 所指向的新结点,其修改指针 的操作是( )。
A . p->next=q; q->prior=p; p->next->prior=q; q->next=q; B. p->next=q; p->next->prior=q; q->prior=p; q->next=p->next; C. q->prior=p; q->next=p->next; p->next->prior=q; p->next=q; D. q->prior=p; q->next=p->next; p->next=q; p->next->prior=q;
第 1 章 绪论
习题
1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储 结构、抽象数据类型。
2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。
4.存储结构由哪两种基本的存储方法实现?
5.选择题
( 1)在数据结构中,从逻辑上可以把数据结构分成(
( 5)以下与数据的存储结构无关的术语是(

数据结构与算法分析java课后答案

数据结构与算法分析java课后答案

数据结构与算法分析java课后答案【篇一:java程序设计各章习题及其答案】>1、 java程序是由什么组成的?一个程序中必须有public类吗?java源文件的命名规则是怎样的?答:一个java源程序是由若干个类组成。

一个java程序不一定需要有public类:如果源文件中有多个类时,则只能有一个类是public类;如果源文件中只有一个类,则不将该类写成public也将默认它为主类。

源文件命名时要求源文件主名应与主类(即用public修饰的类)的类名相同,扩展名为.java。

如果没有定义public类,则可以任何一个类名为主文件名,当然这是不主张的,因为它将无法进行被继承使用。

另外,对applet小应用程序来说,其主类必须为public,否则虽然在一些编译编译平台下可以通过(在bluej下无法通过)但运行时无法显示结果。

2、怎样区分应用程序和小应用程序?应用程序的主类和小应用程序的主类必须用public修饰吗?答:java application是完整的程序,需要独立的解释器来解释运行;而java applet则是嵌在html编写的web页面中的非独立运行程序,由web浏览器内部包含的java解释器来解释运行。

在源程序代码中两者的主要区别是:任何一个java application应用程序必须有且只有一个main方法,它是整个程序的入口方法;任何一个applet小应用程序要求程序中有且必须有一个类是系统类applet的子类,即该类头部分以extends applet结尾。

应用程序的主类当源文件中只有一个类时不必用public修饰,但当有多于一个类时则主类必须用public修饰。

小应用程序的主类在任何时候都需要用public来修饰。

3、开发与运行java程序需要经过哪些主要步骤和过程?答:主要有三个步骤(1)、用文字编辑器notepad(或在jcreator,gel, bulej,eclipse, jbuilder等)编写源文件;(2)、使用java编译器(如javac.exe)将.java源文件编译成字节码文件.class;(3)、运行java程序:对应用程序应通过java解释器(如java.exe)来运行,而对小应用程序应通过支持java标准的浏览器(如microsoft explorer)来解释运行。

数据结构与算法分析课后习题答案

数据结构与算法分析课后习题答案

数据结构与算法分析课后习题答案【篇一:《数据结构与算法》课后习题答案】>2.3.2 判断题2.顺序存储的线性表可以按序号随机存取。

(√)4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此属于同一数据对象。

(√)6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。

(√)8.在线性表的顺序存储结构中,插入和删除时移动元素的个数与该元素的位置有关。

(√)9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。

(√)2.3.3 算法设计题1.设线性表存放在向量a[arrsize]的前elenum个分量中,且递增有序。

试写一算法,将x 插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。

【提示】直接用题目中所给定的数据结构(顺序存储的思想是用物理上的相邻表示逻辑上的相邻,不一定将向量和表示线性表长度的变量封装成一个结构体),因为是顺序存储,分配的存储空间是固定大小的,所以首先确定是否还有存储空间,若有,则根据原线性表中元素的有序性,来确定插入元素的插入位置,后面的元素为它让出位置,(也可以从高下标端开始一边比较,一边移位)然后插入x ,最后修改表示表长的变量。

int insert (datatype a[],int *elenum,datatype x) /*设elenum为表的最大下标*/ {if (*elenum==arrsize-1) return 0; /*表已满,无法插入*/else {i=*elenum;while (i=0 a[i]x)/*边找位置边移动*/{a[i+1]=a[i];i--;}a[i+1]=x;/*找到的位置是插入位的下一位*/ (*elenum)++;return 1;/*插入成功*/}}时间复杂度为o(n)。

2.已知一顺序表a,其元素值非递减有序排列,编写一个算法删除顺序表中多余的值相同的元素。

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

您的本次作业分数为:75分单选题
1.数据结构课程主要研究以下三方面的内容,它们是______。

∙ A 数据、数据元素、数据类型
∙ B 数据元素、数据类型、算法实现
∙ C 数据元素、数据的逻辑结构、数据的存储结构
∙ D 数据的逻辑结构、数据的存储结构、数据的运算
单选题
2.在以下的复杂度量级中,量级最低的是______。

∙ A O(n)
∙ B O(log2n)
∙ C O(nlog2n)
∙ D O(n2)
单选题
3.设某二维数组A[1..n,1..n],则在该数组中用顺序查找法查找一
个元素的时间复杂性的量级为______
∙ A O(log2n)
∙ B O(n)
∙ C O(nlog2n)
∙ D O(n2)
单选题
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.计算机算法是指______。

∙ A 计算方法
∙ B 排序方法
∙ C 调度方法
∙ D 解决问题的有限运算序列
单选题
10.计算机算法必须具备输入、输出和____ 等五个特性。

∙ A 可行性、可移植性和可扩充性
∙ B 可行性、确定性和有穷性
∙ C 确定性、稳定性和有穷性
∙ D 易读性、稳定性和安全性
单选题
11.算法分析的两个主要方面是____。

∙ A 数据复杂性和程序复杂性
∙ B 可读性和文档性
∙ C 时间复杂度和空间复杂度
∙ D 正确性和简单性
判断题
12.逻辑结构相同时物理结构也应该相同∙正确错误。

相关文档
最新文档