版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2009数据结构练习题一、选择题( D )1、若线性表最常用的操作是存取第i个元素及其前驱的值,则采用 存储方式节省时间:A、 单链表 B、 双链表 C、 单循环链表 D、 顺序表。( A )2、将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号为49的结点的左孩子的编号为 。 A、 98 B、 99 C、 50 D、 48( A )3、数组A1.5,1.6的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续内存单元中,则A5,5的地址是 。A、 1140 B、 1145 C、 1120 D、 1125( C )4、对二叉树
2、从1开始编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用 实现编号。A、先序遍历 B、中序遍历 C、后序遍历 D、从根开始进行层次遍历( B )5、栈和队列都是 。A、顺序存储的线性结构 B、限制存取点的线性结构C、链式存储的线性结构 D、限制存取点的非线性结构( C )6、若二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是 。A、二叉排序树 B、哈夫曼树 C、堆 D、AVL树( C )7、在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用折半法查找关键码值11,所需的关键码比
3、较次数为 。A、 2 B、 3 C、 4 D、 5( C )8、一组记录的关键字为(46,79,56,38,40,84),利用快速排序的方法,以第一记录为基准得到的一次划分结果为 。A、38,40,46,56,79,84 B、40,38,46,79,56,84C、40,38,46,56,79,84 D、40,38,46,84,56,79 ( D )9、对包含n个元素的哈希表进行查找,平均查找长度为 。A、O(log2n) B、 O(n) C、 O(nlog2n) D、 不直接依赖于n( C )10、一个有n个顶点的无向图最多有 边。A、n B、 n(n-1) C、 n(n-1)/2 D、 2n
4、( B )11、有一个100*90的稀疏矩阵,非0元素有10个,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是 。A. 60 B. 66 C. 18000 D. 33 ( B )12、有关二叉树下列说法正确的是 。A二叉树的度为2 B一棵二叉树的度可以小于2 C二叉树中至少有一个结点的度为2 D二叉树中任何一个结点的度都为2( C )13、二叉树的第I层上最多含有结点数为( )A2I B 2I-1-1 C 2I-1 D2I -1( D )14、n个结点的完全有向图含有边的数目 。An*n Bn(n) Cn2 Dn*(nl)( B D )15、一个有n个结点的图,最少有 个连通分量
5、,最多有 个连通分量。A0 B1 Cn-1 Dn( B )16、一个有向无环图的拓扑排序序列( )是唯一的。A一定 B不一定( A )17、关键路径是事件结点网络中( )。A从源点到汇点的最长路径 B从源点到汇点的最短路径C最长回路 D最短回路( D )18、设一个栈的输入序列是A,B,C,D,则借助一个栈所得到的输出序列不可能是 。A A,B,C,D B D,C,B,A C A,C,D,B D D,A,B,C( C )19、将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号最大的非叶结点的编号为 。A、48 B、49 C、50 D、51二
6、、填空题1、 已知L是带表头结点的非空单链表,且P结点既不是头结点,也不是尾结点,请填写删除P结点直接后继结点的主要语句序列(可利用辅助结点变量Q): Q=P->NEXT 、 P->NEXT=P->NEXT->NEXT 、 free(Q) 。2、 广义表A( ),(a,(b,c)),d)的表尾Gettail(A)为: (a,(b,c),d) 。 3、 对任意一棵二叉树,若终端结点数为n0,则度为2的结点数为: n0-1 。4、 在顺序表(即顺序存储结构的线性表)中插入一个元素,需要平均移动 n/2 元素。5、 已知一棵二叉树的前序序列为ABDFCE,中序序列为DFBAC
7、E,则后序序列为: FDBECA 。6、 通常是以算法执行所耗费的 时间 和所占用的 空间 来判断一个算法的优劣。7、 已知一个3行、4列的二维数组A(各维下标均从1开始),如果按“以列为主”的顺序存储,则排在第8个位置的元素是: A23 。三、判断题:正确的在( )中填入“”,错误的填入“×”。( × )1、线性表的逻辑顺序与物理顺序总是一致的。( × )2、线性表的顺序存储表示优于链式存储表示。( )3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。( × )4、二维数组是其数组元素为线性表的线性表。( )5、每种数据结构都应具
8、备三种基本运算:插入、删除和搜索。( × )6、如果一个二叉树中没有度为1的结点,则必为满二叉树。( × )7、内部排序是指排序过程在内存中进行的排序。( )8、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和。( × )9、拓扑排序是按AOE网中每个结点事件的最早发行时间对结点进行排序。( × )10、具有三个结点的二叉树有三种。四、分析题1、将关键码45,24,53,12,28,90依次插入到一棵初始为空的二叉排序树中,画出插完所有关键码后的二叉排序树。解:4553249012282、某二叉树的结点数据采用顺序存储表示如下:0 1 2 3 4
9、 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19HIJACDBFGY(1)试画出此二叉树的图形表示。(2)写出结点D的双亲结点及左、右子女。解: (1) IB D AH J F C G Y(2)结点D的双亲结点为J,左子女结点为空,右子女为G。3、已知无向图如下图1所示, 给出图的邻接表。从A开始,给出一棵广度优先生成树。4、已知一棵树如图2所示,要求将该树转化为二叉树。3题解答 4题解答 5、已知一个序列abcdefghi,其字符对应的权分别为:字符abcdefghi权51020123048225画出对应的哈夫曼树生成过程,并给出每个字符的哈夫曼编码。解:字符
10、abcdefghi编码000011011110011000011110000010016、有如图4所示的带权图,使用普里姆算法来求最小生成树,将边的加入顺序填入下表中。序号123456789边d-e解答:序号12345678边d-ee-he-ch-ff-gh-ic-bb-a五、设计题1、 假设称正读和反读都相同的字符序列为“回文”,例如,abba和abcba是回文,abcde和ababab则不是回文。试写一个算法判别读入的一个以为结束符的字符序列是否是“回文”。2、 若矩阵Am×n中的某个元素aij是第i行中的最小值,同时又是第j列中的最大值,则称此元素为该矩阵中的一个马鞍点。假设以
11、二维数组存储矩阵Am×n,试编写求出矩阵中所有马鞍点的算法。解答:1、int Palindrome_Test()/判别输入的字符串是否回文序列,是则返回1,否则返回0 InitStack(S);InitQueue(Q); while(c=getchar()!='') Push(S,c);EnQueue(Q,c); /同时使用栈和队列两种结构 while(!StackEmpty(S)
12、60; Pop(S,a);DeQueue(Q,b); if(a!=b) return ERROR; return OK;/Palindrome_Test 2、void Get_Saddle(int Amn)/求矩阵A中的马鞍点 for(i=0;i<m;i+) for(min=Ai0,j=0;j<n;j+)
13、160;if(Aij<min) min=Aij; /求一行中的最小值 for(j=0;j<n;j+) if(Aij=min) /判断这个(些)最小值是否鞍点 for(flag=1,k=0;k<m;k+) if(min<Akj) flag=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论