华工数据结构卷_第1页
华工数据结构卷_第2页
华工数据结构卷_第3页
华工数据结构卷_第4页
华工数据结构卷_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一. 选择题 1. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( )个元素。 A8 B. 63.5 C. 63 D. 72. 设有一个二维数组Amn,假设A00存放位置在644(10),A22存放位置在676(10),每个元素占一个空间,则A33在( )位置,(10)表明用10进数表示。!P113 A692(10) B. 626(10) C. 709(10) D. 724(10)3. 一个有序顺序表有255个对象,采用顺序搜索查表,平均搜索长度为( )。? A128 B. 127 C. 126 D. 2554. 含5个结点(元素值均不相同)的二叉树搜索树有( )

2、种。 A54 B. 42 C. 36 D. 655N个顶点的连通图至少有( )条边。 AN1 B. N C. N1 D. 06 对于两个函数,若函数名相同,但只是( )不同则不是重载函数。 A参数类型 B. 参数个数 C. 函数类型 D.函数个数 7 若需要利用形参直接访问实参,则应把形参变量表明为( )参数。 A指针 B.引用 C. 值 D.地址8 下面程序的时间复杂度为( )。! for(int i=0; im;i+) for(int j=0; jlink=p-link; p-link =s; B. q-link=s; s-link =p; C. p-link=s-link; s-link

3、 =q; D. p-link=s; s-link =q;11. 设单链表中结点的结构为(data, link)。若想摘除结点*p的直接后继,则应执行下列哪一个操作( )。!Ap-link=p-link-link; B. p=p-link; p-link=p-link-linkC. p-link=p-link; D. p=p-link-link;12. 栈的插入和删除操作在( )进行。! A栈顶 B. 栈底 C. 任意位置 D. 指定位置13若让元素1,2,3依次进栈,则出栈次序不可能出现哪种情况( )。! A3,2,1 B. 2,1,3 C. 3,1,2 D. 1,3,2#14 广义表A(a)

4、,则表尾为( )。Aa B. () C. 空表 D. (a)#15 下列广义表是线性表的有( )。 AE(a,(b,c) B. E(a,E) C. E(a,b) D. E(a,L()16. 折半搜索与二叉搜索树(即二叉排序树)的时间性能( )。 A相同 B. 完全不同 C. 有时不相同 D. 不确定17 采用折半搜索算法搜索长度为n的有序表时,元素的平均搜索长度为( )。!AO(nlog2n) B. O(n) C. O(log2n) D. O(n)18. 采用邻接表存储的图的深度优先遍历算法类似于二叉树的( )。! A中序遍历 B. 前序遍历 C. 后序遍历 D. 按层次遍历19 每次从无序表

5、中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做( )排序。! A插入 B. 选择 C. 交换 D. 外排序20采用邻接表存储的图的广度优先遍历算法类似于二叉树的( )。 A中序遍历 B. 前序遍历 C. 后序遍历 D. 按层次遍历二. 填空题 1.算法是一个有穷的指令集,它为解决某一特定任务规定了一个运算序列。它应具有输入、输出、_确定性_、有穷性和可执行性等特性。!2.在一棵度为3的树中,度为2的结点个数是1,度为0的结点个数是6,则度为3的结点个数是_2_。!3.队列的插入操作在_队尾_进行,删除操作在_队头_进行。4.当用长度为n的数组顺序存储一个栈时,若用top=

6、n表示栈空,则表示栈满的条件为_top=0_。 !5.对序列(49,38,65,97,76,27,13,50)采用快速排序法进行排序,以序列的第一个元素为基准元素得到的划分结果是_13 27 384550 65 76 97_。!6. 对于一棵具有n个结点的树,该树中所有结点的度数之和为_n-1_。7.在一个堆的顺序存储中,若一个结点的下标为i,则它的左子女结点的下标为_2i+1_,右子女结点的下标为_2i+2_。8. 请指出在顺序表2、5、7、10、14、15、18、23、35、41、52中,用折半查找关键码12需做_4_次关键码比较。 !9.若线性表采用顺序存储结构,每个元素占用4个存储单元

7、,第一个元素的存储地址为100,则第12个元素的存储地址是_144_。10. 在一个长度为n 的顺序表中,向第i个元素(1 i n)之前插入一个新元素时,需要向后移动_n-i+1_个元素。?11.设有两个串p和q,求q在p中首次出现的位置的运算称作_求子串_。12.以折半搜索方法搜索一个线性表时,此线性表必须是_顺序_存储的_有序_表。13.在一个无向图中,所有顶点的度数之和等于所有边数的 _2_倍。14.判定一个循环队列QU(最多元素为m)为满队列的条件是_QU-front = = (QU-rear+1)% m_。_。#15设有广义表【不要求广义表】D(a,b,D),其长度为_3_,深度为_

8、。16 在一个具有n个顶点的无向完全图中,要连通所有顶点则至少需要_n-1_条边,在一个具有n个顶点的有向完全图中,包含有_n(n-1)_条边。17. 对于一个具有n个顶点的图,若采用邻接矩阵表示 ,则矩阵大小为_n*n_。18. 对于一个具有n个顶点和e条边的连通图,其生成树中顶点数和边数分别为_n_和_n-1_。 19. 在直接选择排序中,记录比较次数的时间复杂度为_O(n*n)_,记录移动次数的时间复杂度为_O(n)_。20 快速排序在平均情况下的空间复杂度为_O(logn)_,在最坏情况下的空间复杂度为_O(n)_。 21.当问题的规模n趋向无穷大时,算法执行时间T(n)的数量级被称为

9、算法的_时间复杂度_。 25.在一个无向图的邻接表中,若表结点的个数是m,则图中边的条数是_m/2_条。 26. 对于一个具有n个顶点的图,若采用邻接矩阵表示 ,则矩阵大小为_n的平方_。 三、判断题 (y )1. 直接选择排序是一种不稳定的排序方法。( n)2. 折半搜索只适用于有序表,包括有序的顺序表和有序的链表。( y)3. 数据的逻辑结构与数据元素本身的内容和形式无关。 ( n)4. 数据结构是指相互之间存在一种或多种关系的数据元素的全体。( n)5.线性表的逻辑顺序与物理顺序总是一致的。( y)6.线性表若采用链式存储表示时所有存储单元的地址可连续可不连续。( y)7.二叉树是数的特

10、殊情形。( y)8.若有一个叶子结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点。( n)9. 若有一个叶子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。( n)10.任一棵二叉搜索树的平均搜索时间都小于用顺序搜索法搜索同样结点的顺序表的平均搜索时间。 ( n)11.对于同一组待输入的关键码集合,虽然各关键码的输入次序不同,但得到的二叉搜索树都是相同的。( y)12. 最优二叉搜索树的任何子树都是最优二叉搜索树。(y )13. 在二叉搜索树上插入新结点时,不必移动其它结点,仅需改

11、动某个结点的指针,使它由空变为非空即可。(y )14. 有n(n1)个顶点的有向强连通图最少有n条边。( n)15. 连通分量是无向图中的极小连通子图。 ( n)16.二叉树中任何一个结点的度都是2。(n )17.单链表从任何一个结点出发,都能访问到所有结点。 四、程序阅读填空 1. 在顺序表中第 i 个位置插入新元素 x !template int SeqList:Insert (Type & x, int i) if (ilast+1|last=MaxSize-1)return 0; /插入不成功 else last+; for(int j=last;ji;j-)dataj=dataj-1

12、; datai = x; return 1; /插入成功 2. 删去链表中除表头结点外的所有其他结点template void List : MakeEmpty ( ) ListNode *q; while (firstlink!=NULL)q=first link; first link=q link; /将表头结点后第一个结点从链中摘下 delete q; /释放它 last = first; /修改表尾指针3. 删去链式队头结点(队头指针为QueueNode *front),并返回队头元素的值template Type Queue:DeQueue( ) assert (!IsEmpty

13、( ); /判队空的断言 QueueNode *p =_front_; Type retvalue = pdata; /保存队头的值 _front=front link_; /新队头 delete p; return retvalue;#4. 最小堆的向下调整算法(没有)template void MinHeap:FilterDown(int start, int EndOfHeap) int i = start, j = 2*i+1; / j 是 i 的左子女 Type temp = heapi; while ( j = EndOfHeap ) if ( j heapj+1.key ) j+

14、; /两子女中选小者 if ( temp.key = heapj.key ) break; else heapi = heapj; i = j; j=2*j+1_; _heapi=temp;_ _;5基于有序顺序表的折半搜索递归算法(Element为有序顺序表)!template int orderedList :BinarySearch(const Type & x, const int low, const int high)const int mid = -1; if ( low = high ) _mid=(low+high)/2_; if ( Elementmid.getKey( )

15、 x ) mid = BinarySearch ( x, low, mid -1 ); return mid;6. 直接插入排序的算法(按关键码 Key 非递减顺序对数据表list进行排序)(无)template void InsertionSort(datalist & list) for(int i=1; ilist.CurrentSize; i+)_inter(list,i)_ _;template viod Insert(datalist & list, int i) Element temp = list.Vectori; int j = i; /从后向前顺序比较 while(j0

16、& temp.getKey( )list.Vectorj-1.getKey( ) _list.vectorj=list.vectorj-1_ _; j-; list.Vectorj = temp; 7. 直接选择排序的算法:(没) template void SelectSort(datalist & list) for(int i=0; ilist.CurrentSize-1; i+) _SelectExchange(list,i)_ _;template viod SelectExchange(datalist & list, const int i)int k = i; for(int

17、j=i+1;j list.CurrentSize;j+)if(list.Vectorj.getKey()rLink, *q=DL-lLink; While(p!=q & p-rLink!=q & sym=1)if(p-data=q-data) _p=p rLink_;_q=q lLink_;else sym=0; return sym; 五、简答题 1. 给定权值集合15, 03, 14, 02, 06, 09, 16, 17, 构造相应的霍夫曼树, 并计算它的带权外部路径长度。 !()05171609061415F:17160906021415020303()1716091415201614

18、15()17110911060502030605()332029020329161720()161711091514141109150506060502030203()05171609061415F:17160906021415020303()171609141520161415()17110911060502030605()332029020329161720()16171109151414110915050606050203020382()4933()4933172920161716292014110915110915140605060503020302此树的带权路径长度WPL = 229

19、。2. 线性表可用顺序表或是链表存储,此两种存储表示各有哪些特点,优缺点?! P503. 设有一个输入数据的序列是46,25,78, 62, 12, 37, 70, 29,试画出从空树起,逐个输入各个数据而生成的二叉搜索树。 按顺序逐个输入 46 / 25 78 / / 12 37 62 / 29 704. 对于如右图所示的有向图,试写出:!(1) 从顶点出发进行深度优先搜索所得到的深度优先生成树; (2) 从顶点出发进行广度优先搜索所得到的广度优先生成树; P178#5.用广义表的带表头结点的存储表示法表示下列集合。 A = ( ) B = (6, 2)C = (a,( 5, 3, x)D

20、= (B, C, A) E = (B, D) 6.右图所示为一有向图,请给出该图的下述要求: (1)给出每个顶点的入度和出度;1 3 02 2 23 1 24 3 15 2 16 1 4(2)以结点3为起始结点,分别画出该图的一个深度优先生成树和一个宽度优先生成树; (3)给出该图的邻接矩阵; (4)给出该图的邻接表; (5)给出该图的逆邻接表; 7. 已知二叉树的先序、中序和后序序列分别如下,但其中有一些已模糊不清,试构造出该二叉树。先序序列_BC_EF_中序序列BDE_AG_H 后序序列e_DCb_GHf_A 8. 已某个不带权的无向图采用邻接矩阵存储方法依次将顶点的数据信息存放于一维数组ABCDEFGH中,边的信息存放于邻接矩阵中,邻接矩阵为 0 1 1 0 0 0 0 01 0 0 0 1 0 1 11

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论