15秋北航《算法与数据结构》在线作业二100分答案
- 格式:doc
- 大小:38.50 KB
- 文档页数:4
北航《算法与数据结构》在线作业二一、单选题:1.若线性表最常用的操作是存取第i个元素及其前趋的值,则采用( )存储方式节省时间。
(满分:4)A. 单链表B. 双链表C. 单循环链表D. 顺序表正确答案:D2.除了( ) ,其它任何指针都不能在算法中作为常量出现,也无法显示。
(满分:4)A. 头指针B. 尾指针C. 指针型变量D. 空指针正确答案:D3.栈的插入和删除操作在( )进行。
(满分:4)A. 栈顶B. 栈底C. 任意位置D. 指定位置正确答案:A4.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率相同,假设采用顺序查找来确定结点所在的块时,每块应分( )个结点最佳(满分:4)A. 10B. 25C. 6D. 625正确答案:B5.图的深度优先遍历类似于二叉树的( )。
(满分:4)A. 先序遍历B. 中序遍历C. 后序遍历D. 层次遍历正确答案:A6.计算机的算法是( )。
(满分:4)A. 计算方法B. 排序方法C. 对特定问题求解步骤的一种描述D. 调度算法正确答案:C7.以下四种排序方法中,要求附加的内存容量最大的是( ) (满分:4)A. 插入排序B. 选择排序C. 快速排序D. 归并排序正确答案:D8.对于顺序表,以下说法错误的是( ) (满分:4)A. 顺序表是用一维数组实现的线性表,数组的下标可以看成是元素的绝对地址B. 顺序表的所有存储结点按相应数据元素间的逻辑关系决定的次序依次排列C. 顺序表的特点是正确答案:A9.二叉树第i层上至多有( )结点。
(满分:4)逻辑结构中相邻的结点在存储结构中仍相邻D. 顺序表的特点是正确答案:D10.深度为6(根的层次为1)的二叉树至多有( )结点。
(满分:4)逻辑上相邻的元素,存储在物理位置也相邻的单元中正确答案:D11.假设一个有n个顶点和e条弧的有向图用邻接表表示,则删除与某个顶点vi相关的所有弧的时间复杂度是( )。
(满分:4)A. 2iB. 2的i次方C. 2i-1D. 2 的(i-1)次方正确答案:C12.从一棵B树删除元素的过程中,若最终引起树根结点的合并,则新树高度是( )。
北航数据结构试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据结构来实现?A. 链表B. 栈C. 数组D. 树答案:C2. 下列关于二叉树的描述中,错误的是:A. 二叉树的第i层最多有2^(i-1)个节点B. 任意非空二叉树的叶子节点数等于度为2的节点数加1C. 任意非空二叉树的叶子节点数等于度为2的节点数减1D. 任意非空二叉树的叶子节点数等于度为2的节点数答案:C3. 在图的遍历算法中,深度优先搜索(DFS)使用的数据结构是:A. 队列B. 栈C. 链表D. 数组答案:B4. 哈希表的冲突解决方法不包括以下哪种?A. 开放定址法B. 链地址法C. 再散列法D. 排序法答案:D5. 快速排序算法的时间复杂度最坏情况下为:A. O(nlogn)B. O(n^2)C. O(n)D. O(1)答案:B6. 以下排序算法中,时间复杂度为O(nlogn)的是:A. 冒泡排序B. 快速排序C. 选择排序D. 插入排序答案:B7. 以下关于堆的描述中,正确的是:A. 堆是一种特殊的二叉树B. 堆是一种完全二叉树C. 堆是一种平衡二叉树D. 堆是一种链表答案:A8. 在一个长度为n的有序数组中查找一个元素,使用二分查找算法的时间复杂度是:A. O(n)B. O(nlogn)C. O(logn)D. O(1)答案:C9. 以下算法中,不属于动态数据结构的是:A. 链表B. 栈C. 数组D. 哈希表答案:C10. 以下关于图的描述中,错误的是:A. 图是由顶点和边组成的B. 图的顶点可以有0个或多个C. 图的边可以有向或无向D. 图的顶点数一定大于边数答案:D二、多项选择题(每题3分,共15分)1. 下列哪些是线性表的存储结构?A. 顺序存储B. 链式存储C. 索引存储D. 散列存储答案:A, B2. 在图的表示方法中,以下哪些是正确的?A. 邻接矩阵B. 邻接表C. 边表D. 顶点表答案:A, B, C3. 下列哪些排序算法是稳定的?A. 冒泡排序B. 快速排序C. 插入排序D. 选择排序答案:A, C4. 在数据结构中,以下哪些是递归算法的特点?A. 问题可以分解为更小的子问题B. 每个子问题都是原问题的实例C. 存在递归终止条件D. 递归算法的时间复杂度一定比迭代算法高答案:A, B, C5. 在使用链表实现栈时,以下哪些操作是合法的?A. pushB. popC. peekD. clear答案:A, B, C三、简答题(每题5分,共30分)1. 请简述什么是递归,并给出一个递归算法的例子。
算法与数据结构习题及参考答案一、选择题1. 在算法分析中,时间复杂度表示的是:A. 算法执行的时间B. 算法的运行速度C. 算法执行所需的操作次数D. 算法的内存消耗答案:C2. 哪种数据结构可以在常数时间内完成插入和删除操作?A. 数组B. 栈C. 队列D. 链表答案:B3. 单链表的逆置可以使用哪种算法实现?A. 冒泡排序B. 归并排序C. 快速排序D. 双指针法答案:D4. 常用的查找算法中,哪种算法的时间复杂度始终为O(log n)?A. 顺序查找B. 二分查找C. 广度优先搜索D. 深度优先搜索答案:B5. 哪种排序算法的时间复杂度最坏情况下仍为O(n log n)?A. 冒泡排序B. 插入排序C. 快速排序D. 堆排序答案:C二、填空题1. 下面哪个数据结构先进先出?A. 栈B. 队列C. 堆D. 链表答案:B2. 在快速排序的基本步骤中,需要选取一个元素作为________。
答案:枢纽元素3. 广度优先搜索使用的数据结构是________。
答案:队列4. 二分查找是基于_________的。
答案:有序数组5. 哈希表的查找时间复杂度为_________。
答案:O(1)三、解答题1. 请简要说明冒泡排序算法的原理及时间复杂度。
答:冒泡排序是一种简单直观的排序算法。
它的基本思想是通过相邻元素之间的比较和交换来将最大(或最小)的元素逐渐“冒泡”到数列的一端。
冒泡排序的过程如下:1)比较相邻的元素,如果前面的元素大于后面的元素,则交换它们的位置;2)对每一对相邻元素重复进行比较和交换,直到最后一对元素;3)针对剩下的元素重复上述步骤,直到整个数列有序。
冒泡排序的时间复杂度为O(n^2),其中n为待排序数列的长度。
在最坏情况下,冒泡排序需要进行n-1次比较和交换操作,因此时间复杂度为O(n^2)。
在最好情况下,如果待排序数列已经有序,冒泡排序只需进行n-1次比较,没有交换操作,时间复杂度为O(n)。
算法与数据结构_江西师范大学中国大学mooc课后章节答案期末考试题库2023年1.两个字符串相等的充分必要条件是()参考答案:两个字符串的长度相等且对应位置上的字符也相等2.与单链表相比,双链表的优点之一是 ( ) 。
参考答案:能够方便的访问某结点的前驱结点3.对于一个头指针为H的带头结点的循环单链表,判定该表为空表的条件是H->next=NULL。
参考答案:错误4.设有两个串S和T ,其中T是S的子串,求T在S中首次出现的位置的算法称为()参考答案:串的模式匹配5.静态链表与动态链表类似,在元素的插入、删除上也不需做元素的移动。
参考答案:正确6.哈夫曼树的带权路径长度等于其中所有结点的带权路径之和。
参考答案:错误7.哈夫曼树中除了度为1的节点外,还有度为2的节点和叶子节点。
参考答案:错误8.任何一个无向连通网的最小生成树()。
参考答案:至少有1棵9.某算法的时间复杂度是O(n^3),表明该算法的执行时间与n^3成正比。
参考答案:正确10.下列属于非线性数据结构的是()参考答案:图11.n个结点的线索二叉树上含有的线索个数为()参考答案:n+112.串的长度是指()。
参考答案:串中所含字符的个数13.若串S=“software”,其子串个数为()参考答案:3714.int f(char s[])函数判断字符串s 是否是回文,是回文则返回1,否则返回0;如 f("abba")返回1,f("abcba")返回1f("abab")返回0;对于(1),下列选项正确的是()int f(char s[]){ int i=0,j=0; while(s[j]) j++; for(j--; i < j && s[i] == s[j]; i++, j--); return _______(1)_______ ;}参考答案:s[i] = = s[j]15.在求最小生成树时,Kruskal算法更适合于()。
一、单项选择题1某算法的时间复杂度是O(n2),表明该算法()。
A 问题规模是n2B 问题规模与n2成正比C 执行时间等于n2 D执行时间与n2成正比2、关于数据结构的描述,不正确的是()。
A数据结构相同,对应的存储结构也相同。
B 数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。
C 数据结构操作的实现与存储结构有关。
D 定义逻辑结构时可不考虑存储结构。
3、按排序策略分来,起泡排序属于()。
A 插入排序B 选择排序C交换排序 D 归并排序4、利用双向链表作线性表的存储结构的优点是()。
A 便于进行插入和删除的操作 B提高按关系查找数据元素的速度C 节省空间D 便于销毁结构释放空间5、一个队列的进队顺序为1,2,3,4,则该队列可能的输出序列是()。
A 1,2,3,4B 1,3,2,4C 1,4,2,3D 4,3,2,16、Dijkstra算法是按()方法求出图中从某顶点到其余顶点最短路径的。
A 按长度递减的顺序求出图的某顶点到其余顶点的最短路径B按长度递增的顺序求出图的某顶点到其余顶点的最短路径C 通过深度优先遍历求出图中从某顶点到其余顶点的所有路径D 通过广度优先遍历求出图的某顶点到其余顶点的最短路径7、字符串可定义为n(n≥0)个字符的有限()。
其中,n是字符串的长度,表明字符串中字符的个数。
A 集合B 数列C 序列D 聚合8、在二维数组A[9][10]中,每个数组元素占用3个存储单元,从首地址SA开始按行连续存放。
在这种情况下,元素A[8][5]的起始地址为()。
A SA+141B SA+144C SA+222D SA+2559、已知广义表为L(A(u,v,(x,y),z),C(m,(),(k,l,n),(())),((())),(e,(f,g),h)),则它的长度是()。
A 2B 3C 4D 510. 对于具有n(n>1)个顶点的强连通图,其有向边条数至少有_____。
北航《算法与数据结构》在线作业一一、单选题(共 25 道试题,共 100 分。
)1. 以下说法错误的是()A. 线性表的元素可以是各种各样的,逻辑上相邻的元素在物理位置上不一定相邻B. 在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上不一定相邻C. 在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻D. 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素满分:4 分2. 带头节点的单链表head 为空的判定条件()。
A. head=NULLB. head->next=NULLC. head->next=headD. head!=head满分:4 分3. 设有10000个元素组成的无序序列,希望尽快挑选出其中前10个最大值元素,在不改变已有算法结构的前提下,以下几种内排序算法中( )最合适。
A. 选择排序法B. 快速排序法C. 堆排序法D. 冒泡排序法。
满分:4 分4. 在以下栈的基本运算中,不是加工型运算的是().A. lnitStack(S)B. Push(S,X)C. Pop(S)D. empty(S)满分:4 分5. 设矩阵A是一对称矩阵(aij=aji,1<=i,j<=8),若每个矩阵元素占3个单元,将其上三角部分(包括对角线)按行序为主序存放在数组B中,B的首地址为1000,则矩阵元素a67的地址为()A. 1031B. 1093C. 1096D. 1032满分:4 分6. 线性表是一个具有n个()的有限序列。
A. 表元素B. 字符C. 数据元素D. 数据项满分:4 分7. 向二叉排序树中插入一个元素时,其时间复杂度大致为( )。
A. O(log2n(其中2是底数))B. O(n)C. O(1)D. O(n*log2n(其中2是底数))满分:4 分8. 设有向图有n个顶点和e条边,采用领接表作为其存储表示,在进行拓扑排序时,总的计算时间为()。
数据结构试卷(一)一、单选题(每题 2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
北航算法与数据结构复习题北航《算法与数据结构》复习题单选题(每小题2分,总分10分)1、线性表若采用链表存储结构时,要求内存中可用存储单元的地址(D )A、必需是联系的B、部分地址必须是连续的C、一定是不连续的D、连续不连续都可以2、对顺序表上的插入、删除算法的时间复杂性分析来说,通常以什么为标准操作(B)A、条件判断B、结点移动C、算术表达式D、赋值语句3、在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(B )A、p->next=s;s->next=p->next;B、s->next=p->next;p->next=s;C、p->next=s;p->next=s->next;D、p->next=s->next;p->next=s;4、对关键码序列28,16,32,12,60,2,5,72快速排序,从小到大一次划分结果为(C )A、(2,5,12,16)26(60,32,72)B、(5,16,2,12)28(60,32,72)C、(2,16,12,5)28(60,32,72)D、(5,16,2,12)28(32,60,72)5、稀疏矩阵的压缩存储方法是只存储(A )A、非零元素B、三元组(i,j, aij)C、aijD、i,j1、从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为(A)排序法。
A、插入B、选择C、希尔D、二路归并2、用线性探测法查找闭散列表,可能要探测多个散列地址,这些位置上的键值(D )A、一定都是同义词B、一定都不是同义词C、都相同D、不一定都是同义词3、将含有83个结点的完全二叉树从根结点开始编号,根为1号,后面按从上到下、从左到右的顺序对结点编号,那么编号为41的双亲结点编号为(D )A、42B、40C、21D、204、一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是(B )A、不确定B、n-i+1C、ID、n-i5、设深度为k的二叉树上只有度为0和度为2的节点,则这类二叉树上所含结点总数最少(C)个A、k+1B、2kC、2k-1D、2k+1判断题(每小题1分,总分10分)(A==对,B==错)6、在一棵二叉树中,假定每个结点只有左子女,没有右子女,对它分别进行前序遍历和后序遍历,则具有相同的结果。
一、单项选择题(共40道试题, 共100分。
)V1.3个结点旳无向完全连通图至少有()条边。
A.3B.4C.5D.62.设有一种二维数A[m][n], 以行序为主序存储。
假设A[0][0]寄存位置在644(10), A[2][2]寄存位置在676(10), 每个元素占一种空间, 则A[4][5]在()位置, (10)表明用10进数表达。
A.692(10)B.626(10)C.709(10)D.724(10)3.具有n个顶点旳有向完全图有()条弧。
A.nB.n*(n-1)C.n*(n+1)D.n*n4.队列旳操作特点是()。
A.先进先出B.后进先出D.只能从队尾出队5.一种栈旳入栈序列是abcde, 则栈旳不也许旳输出序列是()。
A.edcbaB.decbaC.dceabD.abcde6.某二叉树旳前序和后序序列恰好相似, 则该二叉树一定是()旳二叉树。
A.空或只有一种结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子7.学习数据构造重要目旳是()。
A.处理数值计算问题B.研究程序设计技巧C.选用合适数据构造, 写出更有效旳算法D.是计算机硬件课程旳基础8.任何一种无向连通图旳最小生成树()。
A.只有一棵B.有一棵或多棵D.也许不存在9.栈是一种()旳数据构造。
A.存取受限旳线性构造B.存取不受限旳线性构造C.存取受限旳非线性构造D.存取不受限旳非线性构造10.线性表采用链式存储时, 结点旳存储地址()A.必须是不持续旳B.持续与否均可C.必须是持续旳D.和头结点旳存储地址相持续11.一棵高度(假定树根结点为第0层)为4旳完全二叉树中旳结点数至少为()。
A.15B.16C.17D.3112.次序查找适合于存储构造为()旳查找表。
A.压缩存储B.散列存储D.次序存储或链式存储13.设连通图G中旳边集E={(a, b), (a, e), (a, c), (b, e), (e, d), (d, f), (f, c)}, 则从顶点a出发可以得到一种深度优先遍历旳顶点序列为()A.abedfcB.acfebdC.aebdfcD.aedfcb14.评价排序算法好坏旳原则重要是()。
北理工《数据结构与算法》在线作业试卷总分:100 得分:100一、单选题1. 在数据结构中,与所使用的计算机无关的是数据的() 结构A. 逻辑B. 存储C. 逻辑和存储D. 物理正确答案:A2. 一个n*n 对称矩阵,如果以行或列为主序存入内存,则其容量为() 。
A. n*nB. n*n/2C. n* ( n+1) /2D. (n+1)*( n+1) /2 正确答案:C3. 一个数组第一个元素的存储地址是100,每个数组元素的长度为2,则第5 个元素的地址是() 。
A. 110B. 108C. 100D. 120 正确答案:B4. 如果结点a 有三个兄弟,而且b 为a 的双亲,则b 的度为() 。
A. 3B. 4C. 5D. 2 正确答案:B5. 下面四种内排序方法中,要求容量最大的是() 。
A. 插入排序B. 选择排序C. 快速排序D. 归并排序正确答案:D6. 采用顺序搜索方法查找长度为n 的顺序表时,搜索成功的平均搜索长度为() 。
A. nB. n/2C. (n-1 )/2D. ( n+1) /2 正确答案:D7. 图的存储结构不包括()A. 数组表示B. 邻接表C. 邻接多重表D. 孩子兄弟表示正确答案:D8. 快速排序方法在() 情况下最不利于发挥其长处。
A. 被排序的数据量太大B. 被排序数据中含有多个相同值C. 被排序数据已基本有序D. 被排序数据数目为奇数满分:2.5 分正确答案:C9. 设数组Data[O..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针, 则执行出队操作的语句为()A. front=front+1B. front=(front+1)% mC. rear=(rear+1)%mD. front=(front+1)%(m+1)满分: 2.5 分正确答案:D10. 我们在讨论某种数据结构时,主要讨论四个方面的问题,①数据的逻辑结构②数据的存储结构③在数据的逻辑结构上定义的数据的基本操作;④基本操作算法的具体实现;这四个问题的讨论的先后顺序应该是怎样的?()A. ①②③④B. ①③②④C. ②①③④D. ②①④③满分: 2.5 分正确答案:B11. 一个具有767 个结点的完全二叉树,其叶子结点个数为() 。
算法与数据结构试题及答案一、算法试题1. 请解释什么是算法?算法是一系列确定的步骤,用于解决问题或执行特定任务的方法。
2. 请列举几种常见的算法分类。
- 搜索算法:如二分搜索、广度优先搜索、深度优先搜索。
- 排序算法:如冒泡排序、插入排序、快速排序。
- 图算法:如最短路径算法、最小生成树算法。
- 字符串匹配算法:如KMP算法、Boyer-Moore算法。
3. 请描述递归算法的特点及适用场景。
递归算法是指在解决问题时,将大问题划分成一个或多个与原问题类似但规模减小的子问题,并通过递归调用这些子问题来解决原问题。
递归算法的特点包括简洁,易于理解和实现,但可能存在性能上的问题。
适用场景包括树结构的问题、分治算法等。
4. 请解释时间复杂度和空间复杂度的概念。
- 时间复杂度是指算法执行所需要的时间,通常用大O符号表示。
表示算法运行时间与问题规模的增长率之间的关系。
- 空间复杂度是指算法在执行过程中所需的额外空间,通常也用大O符号表示。
表示算法所需的空间与问题规模的增长率之间的关系。
二、数据结构试题1. 请解释什么是数据结构?数据结构是指为组织和存储数据而设计的一种特定方式。
它定义了数据的逻辑关系和操作方法。
2. 请列举几种常见的数据结构。
- 数组:一种连续存储数据的线性数据结构。
- 栈:一种具有后进先出(LIFO)特性的线性数据结构。
- 队列:一种具有先进先出(FIFO)特性的线性数据结构。
- 链表:一种通过指针连接各个节点的数据结构。
- 树:一种由节点和边组成的非线性数据结构。
3. 请解释树的常见术语:节点、根节点、叶子节点、父节点、子节点、深度、高度。
- 节点:树中的基本元素,包含数据和指向其他节点的指针。
- 根节点:树的顶部节点,没有父节点。
- 叶子节点:没有子节点的节点。
- 父节点:有子节点的节点。
- 子节点:一个节点的直接后继节点。
- 深度:从根节点到当前节点所经过的边的数量。
- 高度:树中任意节点最大深度的值。
北京语言大学智慧树知到“计算机科学与技术”《算法与数据分析》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共10题)1.分支限界法与回溯法的相同点是()。
A.求解目标相同B.搜索方式相同C.对扩展结点的扩展方式相同D.都是一种在问题的解空间树T中搜索问题解的算法2.以深度优先方式系统搜索问题解的算法称为()。
A.分支界限算法B.概率算法C.贪心算法D.回溯算法3.贪心选择性质是贪心算法可行的第一个基本要素,但不是贪心算法与动态规划算法的主要区别。
()A.错误B.正确4.Strassen矩阵乘法是利用什么实现的算法?()A.分治策略B.动态规划法C.贪心法D.回溯法5.矩阵连乘问题的算法可由什么设计实现?()A.分支界限算法B.动态规划算法C.贪心算法D.回溯算法6.利用概率的性质计算近似值的随机算法是数值概率算法,运行时以一定的概率得到正确解的随机算法是蒙特卡罗算法。
()A.错误B.正确7.快速排序算法的性能取决于划分的对称性。
()A.错误B.正确8.回溯法搜索解空间树时,常用的两种剪枝函数为约束函数和限界函数。
()A.错误B.正确9.下面哪种函数是回溯法中为避免无效搜索采取的策略?()A.递归函数B.剪枝函数C.随机数函数D.搜索函数10.分支限界法解旅行售货员问题时,活结点表的组织形式是()。
A.最小堆B.最大堆C.栈D.数组第1卷参考答案一.综合考核1.参考答案:D2.参考答案:D3.参考答案:A4.参考答案:A5.参考答案:B6.参考答案:B7.参考答案:B8.参考答案:B9.参考答案:B10.参考答案:A。
《数据结构与算法》课后习题答案一、算法分析和复杂度1.1 算法复杂度的定义算法的复杂度是指算法所需资源的度量,包括时间复杂度和空间复杂度。
时间复杂度描述了算法的执行时间随输入规模增长的增长速度,空间复杂度描述了算法执行期间所需的存储空间随输入规模增长的增长速度。
1.2 时间复杂度的计算方法时间复杂度可以通过估算算法的执行次数来计算。
对于循环结构,通常可以通过循环体内代码的执行次数来估算时间复杂度。
对于递归算法,则可以通过递归的深度和每次递归的复杂度来计算时间复杂度。
1.3 常见的时间复杂度在算法分析中,常见的时间复杂度有:O(1)、O(log n)、O(n)、O(n log n)、O(n^2)、O(n^3)等。
其中,O(1)表示算法的执行时间与输入规模无关,即常数时间复杂度;O(log n)表示算法的执行时间随输入规模呈对数增长;O(n)表示算法的执行时间随输入规模呈线性增长;O(nlog n)表示算法的执行时间随输入规模呈线性对数增长;O(n^2)表示算法的执行时间随输入规模呈平方增长;O(n^3)表示算法的执行时间随输入规模呈立方增长。
1.4 空间复杂度的计算方法空间复杂度可以通过估计算法执行过程中所需要的额外存储空间来计算。
对于递归算法,通常使用递归的深度来估算空间复杂度。
1.5 算法复杂度的应用算法的复杂度分析在实际应用中非常重要,可以帮助我们选择合适的算法来解决问题。
在时间复杂度相同的情况下,可以通过比较空间复杂度来选择更优的算法。
在实际开发中,我们也可以根据算法的复杂度来进行性能优化,减少资源的消耗。
二、搜索算法2.1 线性搜索算法线性搜索算法是一种简单直观的搜索算法,逐个比较待搜索元素和数组中的元素,直到找到匹配的元素或遍历完整个数组。
其时间复杂度为O(n),空间复杂度为O(1)。
2.2 二分搜索算法二分搜索算法是一种高效的搜索算法,前提是数组必须是有序的。
算法首先取数组的中间元素进行比较,如果相等则返回找到的位置,如果大于中间元素则在右半部分继续搜索,如果小于中间元素则在左半部分继续搜索。
15秋北航《算法与数据结构》在线作业三一、单选题(共25 道试题,共100 分。
)V 1. 具有65个结点的完全二叉树其深度为()。
A. 8B. 7C. 6D. 5满分:4 分2. 如下叙述中正确的是()。
A. 串是一种特殊的线性表B. 串的长度必须大于零C. 串中元素只能是字母D. 空串就是空白串满分:4 分3. 设F是一个森林,B是由F转换得到的二叉树,F中有n个非叶结点,则B中右指针域为空的结点有()个。
A. n-1B. nC. n+1D. n+2满分:4 分4. 计算机的算法必须具备输入,输出和()五个特性。
A. 可行性,可移植性和可扩充性B. 可行性,确定性和有穷性C. 确定性,有穷性和稳定性D. 易读性,稳定性和安全性满分:4 分5. 某二叉树结点的前序序列为E、A、C、B、D、G、F,中序遍历为A、B、C、D、E、F、G。
该二叉树结点的后序序列为( )。
A. B,D,C,A,F,G,EB. B,D,C,F,A,G,EC. E,G,F,A,C,D,BD. E,G,A,C,D,F,B满分:4 分6. 在待排序的元素序列基本有序的前提下,效率最高的排序方法是()A. 插入排序B. 选择排序C. 快速排序D. 归并排序满分:4 分7. 数组A中,每个元素A的长度为3个字节,行下标I 从1到8,列下标j从1到10,从首地址SA开始连续存放在存储器内,存放该数组至少需要的单元数为()。
A. 80B. 100C. 240D. 270满分:4 分8. 以下关于数据的存储结构的叙述哪一条是正确的()。
A. 数据的存储结构是数据间关系的抽象描述B. 数据的存储结构是逻辑结构在计算机存储器中的实现C. 数据的存储结构分为线性结构和非线性结构D. 数据的存储结构对数据运算的具体实现没有影响满分:4 分9. 排序方法中,从未排序序列中挑选元素并将其依次放入己排序序列(初始为空)的一端的方法,称为()A. 希尔排序B. 归并排序C. 插入排序D. 选择排序满分:4 分10. 顺序存储结构()A. 仅适合于静态查找表的存储B. 仅适合于动态查找表的存储C. 既适合静态又适合动态查找表的存储D. 既不适合静态又不适合动态查找表的存储满分:4 分11. 快速排序的记录移动次数()比较次数,其总执行时间为O(nlog2n)。
北交《数据结构》在线作业二一、单选题(共 38 道试题,共 95 分。
)1. 在稀疏矩阵的带行指针向量的链接存储中,每个行单链表中的结点都具有相同的()。
. 行号. 列号. 元素值. 地址正确答案:2. 设有两个串(S1和S2),求S1在S2中首次出现的位置的运算称为()。
. 连接. 模式匹配. 求子串. 求串长正确答案:3. 设有一个二元数组[m][n],假设[0][0]存放位置在644(10),[2][2]存放位置在676 (10),每个元素占一个空间,则[4][5]在()位置,(10)表明用10进数表示。
. 692(10). 626(10). 709(10). 724(10)正确答案:4. 对某二叉树进行前序遍历的结果为F,中序遍历的结果为F,则后序遍历的结果为()。
. F. F. F. F正确答案:5. 下列那种排序需要的附加存储开销最大()。
. 快速排序. 堆排序. 归并排序. 插入排序正确答案:6. 由两个栈共享一个向量空间的好处是()。
. 减少存取时间,降低下溢发生的机率. 节省存储空间,降低上溢发生的机率. 减少存取时间,降低上溢发生的机率. 节省存储空间,降低下溢发生的机率正确答案:7. 在线性表的散列存储中,若用m表示散列表的长度,n表示待散列存储的元素的个数,则装填因子等于()。
. n/m. m/n. n/(n+m). m/(n+m)正确答案:8. 一个有顺序表有255个对象,采用顺序搜索法查表,平均搜索长度为()。
. 128. 127. 126. 255正确答案:9. Sustring('T STRUTUR',5,9)=()。
. 'STRUTUR'. 'STUTUR'. 'T STRUTRU'. 'T'正确答案:10. 如果一个树中,结点有3个兄弟,而且为的双亲,则的度为()。
. 1. 3. 4. 5正确答案:11. 具有65个结点的完全二叉树其深度为()。
北邮算法与数据结构习题参考答案作业参考答案一、(带头结点)多项式乘法 C = A×B:void PolyAdd ( list &C, list R) // R 为单个结点{p=C;while ((!p->next) && (p->next->exp>R->exp)) p=p->next; if ((p->next) || (p->next->exp<R->exp)){ R->next=p->next; p->next=R; } else{ p->next->inf += R->inf; delete R;if ( ! p->next->inf ){ R=p->next; p->next=R->next; delete R; } }}void PolyMul ( list A, list B, list &C ){C=new struct node; C->next=NULL; q=B->next; While ( q ){p=A->next;while ( p ){r = new struct node; r->exp = p->exp + q->exp;r->inf = p-> inf * q->inf; PolyAdd(C, r);p=p->next;}q=q->next;}}二、梵塔的移动次数:已知移动次数迭代公式为:M ( n ) = 2M ( n-1 ) + 1初值为:M ( 0 ) = 0则:M ( n ) = 2 ( 2M ( n-2 ) + 1 ) + 1= 4M ( n-2 ) + 3= 8M ( n-3 ) + 7= 2i M ( n-i ) + 2i– 1若n=i ,则M ( n-n ) = 0,故:M ( n ) = 2n M ( n-n ) + 2n– 1= 2n– 1所以,梵塔的移动次数为2n– 1次。
北航《算法与数据结构》在线作业二
单选题
一、单选题(共25 道试题,共100 分。
)
1. 对顺序表上的插入、删除算法的时间复杂性分析来说,通常以()为标准操作
A. 条件判断
B. 结点移动
C. 算术表达式
D. 赋值语句
-----------------选择:B
2. 在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行()。
A. HL=p;p->next=HL;
B. p->next=HL;HL=p;
C. p->next=HL;p=HL;
D. p->next=HL->next;HL->next=p;
-----------------选择:B
3. 线性表是一个具有n个()的有限序列。
A. 表元素
B. 字符
C. 数据元素
D. 数据项
-----------------选择:C
4. 若给定的关键字集合为{20,15,14,18,21,36,40,10},一趟快速排序结束时,键值的排列为( )。
A. 10,15,14,18,20,36,40,21
B. 10,15,14,18,20,40,36,21
C. 10,15,14,20,18,40,36,21
D. 15,10,14,18,20,36,40,21
-----------------选择:A
5. 按照二叉树的定义,具有3个结点的二叉树有()种。
A. 3
B. 4
C. 5
D. 6
-----------------选择:C
6. 下列有关图遍历的说法中不正确的是()。
A. 连通图的深度优先搜索是个递增过程
B. 图的广度优先搜索中邻接点的寻找具有“先进先出”的特征
C. 非连通图不能用深度优先搜索法
D. 图的遍历要求每个顶点仅被访问一次
-----------------选择:C
7. Substr('DATA STRUCTURE',5,9)=()。
A. STRUCTURE'
B. 'ASTUCTUR'
C. 'DATA STRUCTRUE'。