山大网络教育《数据结构》( C 卷).doc

上传人:罗晋 文档编号:5655509 上传时间:2020-07-20 格式:DOC 页数:6 大小:106.50KB
返回 下载 相关 举报
山大网络教育《数据结构》( C 卷).doc_第1页
第1页 / 共6页
山大网络教育《数据结构》( C 卷).doc_第2页
第2页 / 共6页
山大网络教育《数据结构》( C 卷).doc_第3页
第3页 / 共6页
山大网络教育《数据结构》( C 卷).doc_第4页
第4页 / 共6页
山大网络教育《数据结构》( C 卷).doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《山大网络教育《数据结构》( C 卷).doc》由会员分享,可在线阅读,更多相关《山大网络教育《数据结构》( C 卷).doc(6页珍藏版)》请在三一文库上搜索。

1、数据结构模拟卷 一、单项选择题1数据结构是()。A一种数据类型B数据的存储结构C一组性质相同的数据元素的集合D相互之间存在一种或多种特定关系的数据元素的集合2算法分析的目的是(B)。A辨别数据结构的合理性B评价算法的效率C研究算法中输入与输出的关系D鉴别算法的可读性3在线性表的下列运算中,不改变数据元素之间结构关系的运算是(D)。A插入B删除C排序D定位4若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为(B)。A3,2,6,1,4,5B3,4,2,1,6,5C1,2,5,3,4,6D5,6,4,2,3,15设串sl=Data Structures with

2、Java,s2=it,则子串定位函数index(s1,s2)的值为(D)。A15B16C17D186二维数组A89按行优先顺序存储,若数组元素A23的存储地址为1087,A47的存储地址为1153,则数组元素A67的存储地址为(A)。A1207B1209C1211D12137在按层次遍历二叉树的算法中,需要借助的辅助数据结构是(A)。A队列B栈C线性表D有序表8在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系(B)。A不一定相同B都相同C都不相同D互为逆序9若采用孩子兄弟链表作为树的存储结构,则树的后序遍历应采用二叉树的(C)。A层次遍历算法B前序遍历算法C中序遍历算法D后序遍

3、历算法10若用邻接矩阵表示一个有向图,则其中每一列包含的1的个数为(A)。A图中每个顶点的入度B图中每个顶点的出度C图中弧的条数D图中连通分量的数目11图的邻接矩阵表示法适用于表示(C)。A无向图B有向图C稠密图D稀疏图12在对n个关键字进行直接选择排序的过程中,每一趟都要从无序区选出最小关键字元素,则在进行第i趟排序之前,无序区中关键字元素的个数为(D)。AiBi+1Cn-iDn-i+1二、填空题1栈是_操作受限_的线性表,其运算遵循_后进先出_的原则。2_栈_是限定仅在表尾进行插入或删除操作的线性表。3. 一个栈的输入序列是:1,2,3则不可能的栈输出序列是_3 1 2 _。4二叉树由_(

4、1)根节点_,_(2)左子树_,_(3)右子树_三个基本单元组成。5在二叉树中,指针p所指结点为叶子结点的条件是_p-lchild=null & p-rchild=null _。6具有256个结点的完全二叉树的深度为_9_。7已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有_10_个叶子结点。8若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的_ 比较_和记录的_移动_。9.分别采用堆排序,快速排序,冒泡排序和归并排序,对初态为有序的表,则最省时间的是_冒泡_算法,最费时间的是_快速_算法。10不受待排序初始序列的影响,时间复杂度为O(N2)的

5、排序算法是_简单选择排序_,在排序算法的最后一趟开始之前,所有元素都可能不在其最终位置上的排序算法是_直接插入排序_。 三、解答题1某广义表的表头和表尾均为(a,(b,c)),画出该广义表的图形表示。2已知二叉树的先序序列和中序序列分别为HDACBGFE和ADCBHFEG。(1)画出该二叉树;(2)画出与(1)求得的二叉树对应的森林。3已知带权图的邻接表如下所示,其中边表结点的结构为:依此邻接表从顶点C出发进行深度优先遍历。(1)画出由此得到的深度优先生成树;(2)写出遍历过程中得到的从顶点C到其它各顶点的带权路径及其长度。参考答案:1. 2.(1)(2)3.(1)(2)顶点C到顶点A的带权路

6、径为(C,D,B,A),其长度为8+20+11=39顶点C到顶点B的带权路径为(C,D,B),其长度为8+20=28顶点C到顶点D的带权路径为(C,D),其长度为8顶点C到顶点E的带权路径为(C,D,B,F,E),其长度为8+20+9+14=51顶点C到顶点F的带权路径为(C,D,B,F),其长度为8+20+9=37四、算法设计题1已知中序线索二叉树T右子树不空。设计算法,将S所指的结点作为T的右子树中的一个叶子结点插入进去,并使之成为TT的右子树的(中序序列)第一个结点(同时要修改相应的线索关系)。2写出在中序线索二叉树里;找指定结点在后序下的前驱结点的算法。参考答案:1.答案:题目分析若使

7、新插入的叶子结点S成T右子树中序序列的第一个结点,则应在T的右子树中最左面的结点(设为p)处插入,使S成为结点p的左子女。则S的前驱是T,后继是p.void ThrTreeInsert(BiThrTree T,S)/在中序线索二叉树T的右子树上插入结点S,使S成为T右子树中序遍历第一个结点p=T-rchild; /用p去指向T的右子树中最左面的结点while(p-ltag=0) p=p-lchild;S-ltag=1;S-rtag=1; /S是叶子,其左右标记均为1S-lchild=T;S-rchild=p;/S的前驱是根结点T,后继是结点pp-lchild=S;p-ltag=0; /将p的左

8、子女指向S ,并修改左标志为0/结束 ThrTreeInsert2答案:题目分析在后序序列中,若结点p有右子女,则右子女是其前驱,若无右子女而有左子女,则左子女是其前驱。若结点p左右子女均无,设其中序左线索指向某祖先结点f(p是f右子树中按中序遍历的第一个结点),若f有左子女,则其左子女是结点p在后序下的前驱;若f无左子女,则顺其前驱找双亲的双亲,一直继续到双亲有左子女(这时左子女是p的前驱)。还有一种情况,若p是中序遍历的第一个结点,结点p在中序和后序下均无前驱。BiThrTree InPostPre (BiThrTree t,p)/在中序线索二叉树t中,求指定结点p在后序下的前驱结点qBi

9、ThrTree q; if (p-rtag=0) q=p-rchild; /若p有右子女,则右子女是其后序前驱 else if (p-ltag=0) q=p-lchild; /若p无右子女而有左子女,左子女是其后序前驱。else if(p-lchild=null) q=null;/p是中序序列第一结点,无后序前驱else /顺左线索向上找p的祖先,若存在,再找祖先的左子女 while(p-ltag=1 & p-lchild!=null) p=p-lchild; if(p-ltag=0) q=p-lchild; /p结点的祖先的左子女是其后序前驱 else q=null; /仅右单枝树(p是叶子),已上到根结点,p结点无后序前驱 return(q); /结束InPostPre

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1