910数据结构(2019年真题)

算法设计题

问题1

有一种排序算法叫做计数排序。这种排序算法对一个待排序的表(采用顺序存储)进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个元素,扫描待排序的表一趟,统计表中有多少个元素的关键字比该元素的关键字小。假设对某一个元素,统计出数值为count,那么这个元素在新的有序表中的合适的存放位置即为count。
(1)设计实现计数排序的算法。
(2)对于有n个元素的表,比较次数是多少?
(3)与简单选择排序相比,哪种方法更好?为什么?

void countSort(int A[], int B[], int n){int i,j,k,count;for(i=0; i<n; i++){count = 0;k = A[i];for(j=0; j<n; j++){if(A[j] < k){count++;}}B[count] = k;}
}
2)对于有n个元素的表,每个元素都要与n个元素(含自身)进行比较,关键字的比较总次数是n^2
3)简单选择排序比这种计数排序好,因为对有n个元素的数据表进行简单排序只需进行1+2+...+(n-1)=n(n-1)/2,且可在原地进行排序。

问题2

设二叉树T采用二叉链表存储,设计一个算法,求指定结点p的父结点。要求:
(1)描述算法的基本设计思想。
(2)根据设计思想,给出C语言描述算法,关键之处请给出简要注释。

1)算法思想:如果树为空或者p是T的孩子结点,返回T;如果T的左孩子为p的父结点,返回对左孩子进行递归调用的结果,无需找右孩子;如果T的右孩子为p的父结点,返回对右孩子进行递归调用的结果;如果左右孩子都不包含p,返回null。
BTNode *getParent(BTNode *T, BTNode *p){if(T==null || T->lchild==p || T->rchild==p){return T;}BTNode *lchild = getParent(T->lchild, p);if(lchild != null){return lchild;}BTNode *rchild = getParent(T->rchild, p);if(rchild != null){return rchild;}return lchild;
}

选择题错题整理

1.顺序存储表示中,数据元素之间的逻辑关系是由()表示的。
A.指针 B.逻辑顺序 C.存储位置 D.问题上下文
正确答案
C.存储位置
试题分析
顺序存储中数据的逻辑关系是由存储位置表示的,链式存储中数据的逻辑关系是由指针表示的。

2.计算算法的时间复杂度属于()。
A.事前统计的方法
B.事前分析估算的方法
C.事后统计的方法
D.事后分析估算的方法
正确答案
B.事前分析估算的方法
试题分析

3.对于链式队列,在这些插入操作时()。
A.仅修改头指针
B.仅修改尾指针
C.头、尾指针都要修改
D.头、尾指针可能都要修改
正确答案
D.头、尾指针可能都要修改
试题分析
对于链式队列,一般插入新元素时仅修改队尾指针即可,但有一种特殊情况,即向空队列插入新元素时,需要同时修改队头指针和队尾指针。所以选D。

4.一个广义表(x,(a,b,c))的表尾是()。
A.x B.(a,b,c) C.(a,b,©) D.((a,b,c))
正确答案
D.((a,b,c))
试题分析
广义表的表尾指的是除表头之外的其他元素组成的
注:表尾不是最后一个元素,而是一个子表。

简答题

1.简述数据结构与数据类型的区别。

2.简述线性表、栈和队列的异同。

3.如果一棵哈夫曼树T有n0个叶子结点,那么,树T有多少个结点?要求给出求解过程。

4.设T是一棵AVL树,若想用AVL树的插入算法向树中插入元素K,如果在T中查找K失败且查找K的路径上所有结点的平衡因子都为0,那么在插入新元素K时,树T的高度是否一定增加?为什么?

分析计算题

1.用邻接表表示图时,顶点个数设为n,边的条数设为e,在邻接表上执行有关图的遍历操作时,时间代价是O(ne)、O(n+e)还是O(max(n,e))。要有分析过程,否则将不得分。

在邻接表中执行图的遍历操作时,需要对邻接表中所有的边表的结点访问一次,还需要对所有的顶点访问一次,所以时间复杂度为O(n+e)

2.将关键字序列{13,5,20,19,15,8}散列存储到散列表中,散列表的存储空间是一个下标从0开始的长度为8的一维数组,散列(哈希)函数为:H(key)=key MOD 7,处理冲突采用线性探测再散列法。
(1)请画出所构造的散列表。
(2)分别计算在等概率情况下,查找成功和查找不成功的平均查找长度。
在这里插入图片描述

3.如果只想得到一个序列中第k个最小元素之前的部分排序序列,
(1)最好采用什么排序方法?为什么
(2)如有这样的一个序列:{57,40,38,11,13,34,48,75,25,6,19,9,7}得到其第4个最小元素之前的部分序列{6,7,9,11},使用所选择的算法实现时,要执行多少次比较?

因为堆排序的时间复杂度是O(n+klog2n),若k≤n/log2n,则可得到的时间复杂度为O(n)

算法分析阅读题

阅读下面的代码,试说明针对带权连通图操作算法的功能。

迪杰斯特拉算法的实现,求单源最短路径。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/147311.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频增强修复工具Topaz Video AI mac中文版安装教程

Topaz Video AI mac是一款使用人工智能技术对视频进行增强和修复的软件。它可以自动降噪、去除锐化、减少压缩失真、提高清晰度等等。Topaz Video AI可以处理各种类型的视频&#xff0c;包括低分辨率视频、老旧影片、手机录制的视频等等。 使用Topaz Video AI非常简单&#xff…

5-1.(OOP)初步分析MCV架构模式

组成&#xff1a;模型&#xff08;model&#xff09;、视图&#xff08;view&#xff09;、控制器&#xff08;controller&#xff09; view&#xff1a;界面、显示数据 model&#xff1a;数据管理、负责在数据库中存取数据以及数据合法性验证 controller&#xff1a;负责转…

Python大数据之PySpark(四)SparkBaseCore

文章目录 SparkBase&Core环境搭建-Spark on YARN扩展阅读-Spark关键概念[了解]PySpark角色分析[了解]PySpark架构后记 SparkBase&Core 学习目标掌握SparkOnYarn搭建掌握RDD的基础创建及相关算子操作了解PySpark的架构及角色 环境搭建-Spark on YARN Yarn 资源调度框…

Linux 下如何调试代码

debug 和 release 在Linux下的默认模式是什么&#xff1f; 是release模式 那你怎么证明他就是release版本? 我们知道如果一个程序可以被调试&#xff0c;那么它一定是debug版本&#xff0c;如果它是release版本&#xff0c;它是没法被调试的&#xff0c;所以说我们可以来调试一…

FPGA project : TFT_LCD

实验目标&#xff1a; 驱动TFT_LCD显示十色彩条。 重点掌握的知识&#xff1a; 1&#xff0c;液晶显示器&#xff0c;简称LCD(Liquid Crystal Display)&#xff0c;相对于上一代CRT显示器(阴极射线管显示器)&#xff0c;LCD显示器具有功耗低、体积小、承载的信息量大及不伤眼…

王道考研操作系统——I/O管理

I/O设备的基本概念 键盘&#xff1a;输入设备&#xff08;把设备准备好的数据读入计算机当中&#xff09;&#xff1b; 显示器&#xff1a;输出设备&#xff08;把计算机中准备好的数据写出到设备上&#xff09;&#xff1b; 移动硬盘&#xff1a;既是输入又是输出 中断驱动…

数据挖掘(2)数据预处理

一、数据预处理 1.1概述 数据预处理的重要性 杂乱性&#xff1a;如命名规则。重复性&#xff1a;同一客观事再不完整性&#xff1a;噪声数据&#xff1a;数据中存在错误或异常的现象。 数据预处理的常见方法 数据清洗&#xff1a;去掉数据中的噪声&#xff0c;纠正不一致。数…

HTML的学习 Day02(列表、表格、表单)

文章目录 一、列表列表主要分为以下三种类型&#xff1a;1. 无序列表&#xff08;Unordered List&#xff09;&#xff1a;2. 有序列表&#xff08;Ordered List&#xff09;&#xff1a;将有序列表的数字改为字母或自定义内容li.../li 列表项标签中value属性&#xff0c;制定列…

OpenCV实现视频的追踪(meanshift、Camshift)

目录 1&#xff0c;meanshift 1.1 算法流程 1.2 算法实现 1.3 代码实现 1.4 结果展示 1&#xff0c;meanshift 1.1 算法流程 1.2 算法实现 1.3 代码实现 import numpy as np import cv2 as cv# 读取视频 cap cv.VideoCapture(video.mp4)# 检查视频是否成功打开 if n…

分布式应用程序协调服务 ZooKeeper 详解

目录 1、ZooKeeper简介 2、ZooKeeper的使用场景 3、ZooKeeper设计目的 4、ZooKeeper数据模型 5、ZooKeeper几个重要概念 5.1、ZooKeeper Session 5.2、ZooKeeper Watch 5.3、Consistency Guarantees 6、ZooKeeper的工作原理 6.1、Leader Election 6.2、Leader工作流…

NPDP产品经理知识(产品创新管理)

复习文化&#xff0c;团队与领导力 产品创新管理&#xff1a; 如何树立愿景&#xff1a; 如何实现产品战略 计划 实施产品开发&#xff1a; 商业化&#xff0c;营销计划&#xff0c;推广活动 管理产品生命周期&#xff1a; 新式走向市场的流程&#xff1a;

【Docker】docker拉取镜像错误 missing signature key

问题 当我使用docker拉取一个特定的镜像时&#xff0c;提示错误&#xff1a; 错误 missing signature key 但是拉取其他镜像又可以访问&#xff0c;&#xff0c;&#xff0c;&#xff0c;于是&#xff0c;我怀疑是否是docker版本问题。 docker --version结果确实&#xff0…

操作系统原理-习题汇总

临近毕业&#xff0c;整理一下过去各科习题及资料等&#xff0c;以下为操作系统原理的习题汇总&#xff0c;若需要查找题目&#xff0c;推荐CtrlF或commandF进行全篇快捷查找。 操作系统原理 作业第一次作业选择题简答题 第二次作业选择题简答题 第三次作业选择题简答题 第四次…

ctfshow—1024系列练习

1024 柏拉图 有点像rce远程执行&#xff0c;有四个按钮&#xff0c;分别对应四份php文件&#xff0c;开始搞一下。一开始&#xff0c;先要试探出 文件上传到哪里&#xff1f; 怎么读取上传的文件&#xff1f; 第一步&#xff1a;试探上传文件位置 直接用burp抓包&#xff0c;…

凉鞋的 Godot 笔记 105. 第一个通识:编辑-测试 循环

105. 第一个通识&#xff1a;编辑-测试 循环 在这一篇&#xff0c;我们简单聊聊此教程中所涉及的一个非常重要的概念&#xff1a;循环。 我们在做任何事情都离不开某种循环&#xff0c;比如每天的 24 小时循环&#xff0c;一日三餐循环&#xff0c;清醒-睡觉循环。 在学习一…

通过java向jar写入新文件

文章目录 原始需求分析实施步骤引入依赖核心编码运行效果 原始需求 有网友提问&#xff1a; 我想在程序中动态地向同一个jar包中添加文件&#xff0c;比如&#xff0c;我的可执行jar包是test.jar,我要在它运行时生成一些xml文件并将这些文件添加到test.jar中,请问如何实现&…

C#制做一个 winform下的表情选择窗口

能力有限&#xff0c;别人可能都是通过其他方式实现的&#xff0c;我这里简单粗暴一些&#xff0c;直接通过点击按钮后弹出个新窗体来实现。 1、先在form1上增加一个toolstrip控件&#xff0c;再增加个toolstripbutton按钮&#xff0c;用来点击后弹出新窗体&#xff0c;如图&a…

centos 部署nginx 并配置https

centos版本&#xff1a;centos 7.8 &#xff08;最好不要用8&#xff0c;8的很多用法和7相差很大&#xff09; 一.安装nginx 1。下载Nginx安装包&#xff1a;首先&#xff0c;访问Nginx的官方网站&#xff08;https://nginx.org/&#xff09;或您选择的镜像站点&#xff0c;找…

阿里云ACP知识点(三)

1、弹性伸缩不仅提供了在业务需求高峰或低谷时自动调节ECS实例数量的能力&#xff0c;而且提供了ECS实例上自动部署应用的能力。弹性伸缩的伸缩配置支持多种特性&#xff0c;例如______,帮助您高效、灵活地自定义ECS实例配置&#xff0c;满足业务需求。 标签、密钥对、 实例RAM…

AWS-Lambda之导入自定义包-pip包

参考文档&#xff1a; https://repost.aws/zh-Hans/knowledge-center/lambda-import-module-error-python https://blog.csdn.net/fxtxz2/article/details/112035627 简单来说,以 " alibabacloud_dyvmsapi20170525 " 包为例 ## 创建临时目录 mkdir /tmp cd ./tmp …