计算机考研数据结构试卷十二(练习题含答案)
更新时间:2023-12-26 21:29:01 阅读量: 教育文库 文档下载
共25套适用于计算机考研数据结构系统练习
(PS:其他正在整理,敬请期待)
数据结构试卷12
一、填空题
1.已知数组A[10][10]为对称矩阵,其中每个元素占5个单元。现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址是_______。
2.在有n个结点的无向图中,其边数最多为_______。
3.取出广义表A=(x,(a,b,c,d))中原子x的函数是_______。
4.对矩阵采用压缩存储是为了___ ____。 5.带头结点的双循环链表L为空表的条件是_______。
6.设线性表中元素的类型是实型,其首地址为1024,则线性表中第6个元素的存储位置是 。
7. 对于顺序存储的栈,因为栈的空间是有限的,在进行 运算时,可能发生栈的上溢,在进行 运算时,可能发生栈的下溢。
8.在双向链表中,每个结点有两个指针域,一个指向____ __,另一个指向_ __ __。
9.由一棵二叉树的前序序列和 可唯一确定这棵二叉树。 10.折半查找的存储结构仅限于___ _,且是_ ___。
二、 选择题
1.对n个记录的文件进行快速排序,所需要的辅助存储空间为【 】。
A O(1) B O(log2n) C O(n) D O(n2) 2.哈夫曼树中一定不存在【 】。
A 度为0的结点B 度为1的结点 C 度为2的结点 D 带权的结点 3.下述哪一条是顺序存储方式的优点?【 】
A 存储密度大 B 插入和删除运算方便 C 获取符合某种条件的元素方便 D 查找运算速度快
4.有一个二维数组A[m][n],假设A[0][0]存放位置在600(10),A[3][3]存放位置在678(10),每个元素占一个空间,问A[2][3](10)存放在什么位置?(脚注(10)表示用10进制表示,m>3)【 】。
A 658 B 648 C 633 D 653 5.列关于二叉树遍历的叙述中,正确的是【 】。
A 若一个叶子是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点
B 若一个结点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点
C 若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点
D 若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的
中序遍历最后一个结点
6.层二叉树的结点总数最多为【 】。
A 2k-1 B 2k+1 C 2K-1 D 2k-1 7.线性表进行二分法查找,其前提条件是【 】。
A 线性表以链接方式存储,并且按关键码值排好序
B 线性表以顺序方式存储,并且按关键码值的检索频率排好序 C 线性表以顺序方式存储,并且按关键码值排好序
D 线性表以链接方式存储,并且按关键码值的检索频率排好序 8.n个记录进行堆排序,所需要的辅助存储空间为【 】。
A O(1og2n) B O(n) C O(1) D O(n2)
9.线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K%7作为散列函数,则散列地址为0的元素有【 】个。
A 1 B 2 C 3 D 4 10.列关于数据结构的叙述中,正确的是【 】。
A 数组是不同类型值的集合
B 递归算法的程序结构比迭代算法的程序结构更为精炼 C 树是一种线性结构
D 用一维数组存储一棵完全二叉树是有效的存储方法
三、 计算与算法应用题:
1.画出下列树对应的二叉树,并写出其先根遍历序列:
A B C D F E G
2.将关键字序列为{54,29,37,86,71,91,8,31,44,26}进行归并排序,写出各趟详细过程。
四、阅读下列算法,分析其作用
1.假定从键盘上输入一批整数,依次为:78 63 45 30 91 34 –1,请写出输出结果。
# include < iostream.h> # include < stdlib.h >
const int stackmaxsize = 30; typedef int elemtype; struct stack {
elemtype stack [stackmaxsize]; int top;
};
# include “stack.h” void main 【 】 {
stack a;
initstack(a); int x; cin >>x;
while (x! = -1) { push (a, x ); cin >>x; }
while (!stackempty (a)) cout < 该算法的输出结果为:_________________________________. 2.读下述算法,说明本算法完成什么功能。 template BinTreeNode< Type> *p =t, *temp; if (p!=NULL) { temp = p→leftchild; p→leftchild = p→rightchild; p→rightchild = temp; unknown(p→leftchild); undnown(p→rightchild); } } 该算法的功能是:___________________________ 五、算法设计 1.试用递归法编写输出从n个数中挑选 k个进行排列所得序列的算法。 2.编写一个算法,交换单链表中p所指向的结点和其后续结点的两个结点,Head指向该链表的表头,P指向链表中的某一结点。 Head d e ^ a c b 答案 一、 填空 1、 1225 2、 n(n-1)/2 3、 head(A) 4、 节省空间 5、 L->next=L->prior 或 L->next=L 6、 1044 7、 入栈(插入) , 出栈(删除) 8、 前驱结点 , 后继结点 9、 中序序列 10、 顺序存储结构 , 有序的 二、 选择 1-5 BBADA 6-10 ACCDD 三、 计算与算法应用题 画出下列树对应的二叉树,并写出其先根遍历序列: B A 先根遍历序列: A B D E G F C D C E F G 4.将关键字序列为{54,29,37,86,71,91,8,31,44,26}进行归并排序,写出各趟详细过程。 54 29 37 86 71 91 8 31 44 26 29 54 37 86 71 91 8 31 26 44 29 37 54 86 8 31 71 91 26 44 8 29 31 37 54 71 86 91 26 44 8 26 29 31 37 44 54 71 86 91 四、阅读下列算法,分析它的作用 1. 该算法的输入结果是:34 91 30 45 63 78 2. 该算法的功能是:交换二叉树的左右子树的递归算法。 五、算法设计题: 1. 对于排列的解空间可构造一个虚拟的解空间树,比如n=5,k=3时的解空间树如下图所示,可采用对此树进行先序遍历方式进行遍历,并用递归法进行递归输出从n个数中挑选 k个进行排列所得序列。 具体算法实现如下: // 文件路径名:exam7\\alg.h template void Arrage(ElemType a[],int k,int n, int outlen=0) // 操作结果: 回溯法输出排列序列,a[0..k-1]为k个数的排列序列outlen为当前所求排列 // 序列的长度,其中outlen=k时的排列序列为所求;n为list数组长度 { if (k < 0 || k >= n) return; // 此时无排列 int i; // 临时变量 if (outlen == k + 1) { // 得到一个排列 for (i = 0; i < k; i++) { // 输出一个排列 cout << a[i]; // 输出a[i] } cout << \ \ // 用空格分隔不同排列 } else { // 对解空间进行前序遍历,a[outlen..n]有多个排列,递归的生成排列 for (i = outlen; i < n; i++) { // 处理a[i] Swap(a[outlen+1], a[i]); // 交换a[outlen+1]与a[i] Arrage(a, k, n, outlen + 1); // 对序列长度outlen+1递归 Swap(a[outlen+1], a[i]); // 交换a[outlen+1]与a[i] } } } 2.编写一个算法,交换单链表中p所指向的结点和其后续结点的两个结点,Head指向该链表的表头,P指向链表中的某一结点。 Head a bd c e ^ void Link ::swap( NodeType *p) //0.5分 { NodeType *q,*r,*s; q=p->next; //0.5分 if(q!=NULL) //1分 { if(p==Head) //4分 {Head=Head->next; s=Head->next; Head->next=p; p->next=s; } Else // 4分 { r=Head; while(r->next!=p) r=r->next; r->next=q; p->next=q->next; q->next=p; } } }
正在阅读:
桥面施工(预制箱梁先简支后连续施工)10-15
周恩来军事文化思想初探08-19
对光电鼠标的解剖分析报告 - 图文03-01
母爱无边作文500字07-16
《美美与共》教案12-07
成长中的错误作文350字06-21
拉丁美洲 伊比利亚美洲 西语美洲 的异同09-18
国企公司2022年上半年落实全面从严治党工作自查报告范文03-25
高校邦创业基本功与精益创业方法论答案10-04
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 练习题
- 试卷
- 考研
- 答案
- 计算机
- 十二
- 安全技术交底及危险源告知制度
- 广西交通运输节能减排专项资金申请书- 自动轨迹 - 图文
- 鄂教版小学四年级语文下册全册教案
- VERICUT安装与连接UG 破解教程 - 图文
- 安全生产会议发言稿 doc
- 最新 关于规范医院科研经费财务管理的思考-精品
- 2014—2015学年第一学期期中考试高二历史试题(含答案)
- 用电安全
- 无线局域网组网方案
- 学校党支部创先争优公开承诺书
- 沉降变形观测方案 - 图文
- 2012年湖南教育网络信息安全管理员持证上岗培训考试试卷
- 十三五(2016-2020年)中国净水机行业市场未来发展趋势及投资战略可行性研究报告(目录)
- 关于进一步强化施工现场安全生产监督管理的通知
- 河北省民政厅群众工作领导小组组织机构及职责分工
- 广州市轨道交通二十一号线工程施工20标工程项目管理总体策划书 - 图文
- 人生没有草稿
- 智能楼宇管理师理论复习资料
- 小学美术复习资料2
- 201X年9月通用试用期工作总结模板-word范文(2页)