ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:45.39KB ,
资源ID:7366784      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7366784.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构C++模拟卷子3.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构C++模拟卷子3.docx

1、数据结构C+模拟卷子3第 1 题.( 复合题 共计 10 分) 单选题第 1.1 题.(客观 单选题 1 分) 若将某一数据结构形式化定义为二元组(K,R),其中K是所有数据元素的有限集合,则R是K上( )操作的有限集合映象的有限集合类型的有限集合关系的有限集合第 1.2 题.(客观 单选题 1 分) 单链表的查找算法时间复杂度是O(n)O(1)O(n2)O(log2n)第 1.3 题.(客观 单选题 1 分) 栈的逻辑结构是二叉树线性单链表顺序表第 1.4 题.(客观 单选题 1 分) 与线性结构的链接存贮不相符合的特性是( )便于插入、删除操作存贮空间动态分配需要连续的存贮空间只能顺序查找

2、第 1.5 题.(客观 单选题 1 分) 链结点定义为:template struct LinkNode ElemType data; LinkNode *next;设p指向单链表中的一个结点,s指向待插入的结点,则下述程序段的功能是() s - next = p - next; p - next = s;结点*p与结点*s的数据域互换在p所指结点之前插入s在p所指结点之后插入s在s所指结点之后插入p第 1.6 题.(客观 单选题 1 分) 若进栈序列为1,2,3,4,5,6,且进栈和出栈操作可以穿插进行,则不可能出现的出栈序列是( )2,4,3,1,5,63,2,4,1,6,54,3,2,1

3、,5,62,3,5,1,6,4第 1.7 题.(客观 单选题 1 分) 用长度为m的数组作为循环队列Q的存储空间,m_front指向队头元素,m_rear指向队尾元素的下一个位置,则判定Q为空队列的条件是( )(m_rear-m_front)%m= =1m_front= =m_rear(m_rear-m_front) % m = m-1m_front= =(m_rear+1) % m第 1.8 题.(客观 单选题 1 分) 在下列各棵二叉树中,()是二叉排序树。选D第 1.9 题.(客观 单选题 1 分) 在二叉树中,指针m_root指向根结点,p指向二叉树中某结点,则下列表达式的作用是: 判

4、断 空二叉树: p = m_root判断非树叶结点p-lchild != NULL | p-rchild != NULL 判断树叶 p-lchild = NULL | p-rchild = NULL判断结点度为2 p-lchild != NULL | p-rchild != NULL第 1.10 题.(客观 单选题 1 分) 下列陈述中正确的是( )队列是操作被限制在两端的线性结构二叉树是最多只有两个分支的树层次遍历二叉树要使用栈二叉树中序遍历能够得到有序的序列第 2 题.( 复合题 共计 50 分) 简答题第 2.1 题.(主观 题 5 分) 设n为正整数,分析下面程序段中加下划线的语句的程

5、序步数利用大“O”记号给出其复杂度。x=0;for(i=1;ifor(j=1;j=n-i;j+)x+;参考答案总执行步数:(n-1)+(n-2)+2+1= n(n-1)/2,利用大“O”记号给出其复杂度:T (n)=O(n(n-1)/2)=O(n2/2)=O(n2)第 2.2 题.(主观 题 5 分) 为了提高检索效率,可使用二分法对一个线性结构的元素进行检索。对给定的数据15,17,18,22,35,51,60,88,93,用二分法查找18,写出查找过程;并求出其成功的平均查找长度ASL。参考答案 low=0,high=9,mid=(low+high)/2=(0+9)/2=418因此high

6、=mid=4;mid=(low+high)/2=(0+4)/2=218=datamid=18,因此查找成功。查找判定树:成功的平均查找长度ASL (1*1+2*2+3*4+4*2)/9=25/9。第 2.3 题.(主观 题 5 分) 已知某二叉数的中序遍历序列为bghicdefa,后序遍历序列为ihgdcfeba,请给出该二叉树的形态,并给出前序遍历该二叉树的序列。参考答案该二叉树的形态为图示:前序遍历该二叉树的序列为:abecghidf第 2.4 题.(主观 题 5 分) 已知一个无向图的顶点集为a, b, c, d, e ,其邻接矩阵如下所示0 1 0 0 11 0 0 1 00 0 0

7、1 10 1 1 0 11 0 1 1 0(1)画出该图;(2)从顶点a出发对该图进行深度优先遍历和宽度优先遍历,写出相应的遍历序列。参考答案(1)图结构:(2)从顶点a出发进行深度优先遍历,相应的遍历序列为:abdce从顶点a出发进行宽度优先遍历,相应的遍历序列为:abedc第 2.5 题.(主观 题 5 分) 对于课本图5.52,写出从V3出发的深度与宽度优先遍历序列。参考答案深度优先:v3v2v1v6v5v4宽度优先:v3v2v5v1v6v4第 2.6 题.(主观 题 5 分) 把序列24,15,38,27,76,130,121依次插入到二叉排序树,请画出最后的图,并求出等概率情况下查找

8、成功的平均查找长度。参考答案图:略20/7第 2.7 题.(主观 题 5 分) 把序列12,5,9,20,6,31,24用二路归并算法进行排序,请问要进行多少趟排序?每趟排序结果是什么?参考答案3趟5,12,9,20,6,31,245,9,12,20,6,24,315,6,9,12,20,24,31第 2.8 题.(主观 题 5 分) 请写出对序列54,38,96,23,15,72,60,45,83用直接插入排序算法进行排序过程的每趟结果。参考答案略。第 2.9 题.(主观 题 5 分) 请写出对序列54,38,96,23,15,72,60,45,83用直接选择法排序算法进行排序的每趟过程。参

9、考答案略第 2.10 题.(主观 题 5 分) 把序列63,55,90,58,70,42,10,45,83,67依次插入到二叉排序树中,画出最后的二叉排序树。删除结点55后,二叉排序树的形态有何变化?再把55插入,二叉排序树的形态又是怎样的?请画图表示。参考答案略第 3 题.( 复合题 共计 30 分) 算法设计题第 3.1 题.(主观 题 5 分) 二叉树定义如课本。请写出二叉树前序、中序、后序遍历的递归算法。参考函数原型: void _PreorderTraverse(BTNode* ,void (*visit)(const ElemType &e); void _InorderTrave

10、rse(BTNode* ,void (*visit)(const ElemType &e); void _PostorderTraverse(BTNode* ,void (*visit)(const ElemType &e);参考答案/先序递归遍历二叉树 template void BinaryTree :_PreorderTraverse(BTNode* T,void (*visit)(const ElemType &e) if (T) visit(T-data); _PreorderTraverse(T-lchild,visit); _PreorderTraverse(T-rchild,v

11、isit); /中序递归遍历二叉树 template void BinaryTree :_InorderTraverse(BTNode* T,void (*visit)(const ElemType &e) if (T) _InorderTraverse (T-lchild,visit); visit(T-data); _InorderTraverse (T-rchild,visit); /后序递归遍历二叉树 template void BinaryTree :_PostorderTraverse(BTNode* T,void (*visit)(const ElemType &e) if (T

12、) _PostorderTraverse (T-lchild,visit); _PostorderTraverse (T-rchild,visit); visit (T-data); 第 3.2 题.(主观 题 5 分) 二叉树定义如课本。请写出基于后序遍历思路的算法,求出二叉树的深度。int _Depth(BTNode* );参考答案/求二叉树的深度 template int BinaryTree:_Depth(BTNode* T) if (!T) return 0; int h1,h2; h1 = _Depth(T-lchild); h2 = _Depth(T-rchild); retur

13、n h1 h2 ? h1 + 1 : h2 + 1;第 3.3 题.(主观 题 5 分) 带头结点的单链表定义如课本。请运用单链表的基本操作函数,实现对一个单链表La的数据逆置操作。template void reverse(LinkList &La);参考答案第 3.4 题.(主观 题 5 分) 带头结点的单链表定义如课本。现需要取得第i个结点的值并存入变量e中,如果第i个结点不存在,返回flase,否则返回true。请写出算法。参考原型:bool GetElem (ElemType&,int) const;参考答案/ 返回单链表中序号为i的数据元素 (i的合法值为1ilen)templat

14、e bool LinkList:GetElem(ElemType &e, int i) const if (i len) return false; LinkNode *p = head-next; int k = 1; while (k next; k+; e = p-data; return true; /时间复杂度为O (n)第 3.5 题.(主观 题 5 分) 二叉树定义如课本。以下是二叉树的前序递归遍历算法。请参考该算法,写出复制二叉树的算法。前序递归遍历算法:/先序递归遍历二叉树 template void BinaryTree :_PreorderTraverse(BTNode*

15、 T,void (*visit)(const ElemType &e) if (T) visit(T-data); _PreorderTraverse(T-lchild,visit); _PreorderTraverse(T-rchild,visit); 复制子树T的函数原型:template BTNode* BinaryTree:_Copy( BTNode* T)参考答案/复制一棵子树template BTNode* BinaryTree:_Copy( BTNode* T) if (T = NULL) return NULL; BTNode *p; p = new BTNode; p-dat

16、a = T-data; p-lchild = _Copy(T-lchild); p-rchild = _Copy(T-rchild); return p; 第 3.6 题.(主观 题 5 分) 二叉树定义如课本。后序递归遍历算法如下。请写出基于后遍历思路的删除子树T的算法。/后序递归遍历二叉树 template void BinaryTree :_PostorderTraverse(BTNode* T,void (*visit)(const ElemType &e) if (T) _PostorderTraverse (T-lchild,visit); _PostorderTraverse (T-rchild,visit); visit (T-data); 删除子树T的算法的函数原型:template void BinaryTree:_Destroy(BTNode* &T);参考答案/销毁二叉链表形式的二叉树Ttemplate void BinaryTree:_Destroy(BTNode* &T) if (T) _Destroy (T-lchild); _Destroy (T-rchild); delete T; T = NULL;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1