信息学奥赛初赛天天练-25-CSP-J2023基础题-中序、前序与后序转换秘籍,二叉树构建、遍历技巧,以及图的拓扑排序实战应用

PDF文档公众号回复关键字:20240610

在这里插入图片描述

2023 CSP-J 选择题
单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)

11 给定一棵二叉树,其前序遍历结果为:ABDECFG,中序遍历结果为:DEBACFG。请问这棵树的正确后序遍历结果是什么?( )

A EDBGFCA

B EDBGCFA

C DEBGFCA

D DBEGFCA

12 考虑一个有向无环图,该图包括4条有向边:(1,2),(1,3),(2,4),和(3,4)。以下哪个选项是这个有向无环图的一个有效的拓扑排序?( )

A 4,2,3,1

B 1,2,3,4

C 1,2,4,3

D 2,1,3,4

2 相关知识点

1) 树

线性结构(数组、链表等)中节点是首位相接一对一关系,在树结构中节点之间不再是简单的一对一关系,而是较为复杂的一对多的关系

数据结构中的 树 的名字由来,是因为如果把节点之间的关系直观展示出来,由于长得和现实世界中的树很像,由此得名

2) 二叉树

每个结点至多拥有两棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒

例如下面是一棵二叉树

3) 二叉树的遍历

常见的二叉树的遍历主要有3种,先序遍历,中序遍历,后序遍历

先序遍历

先序遍历又叫先根遍历,遍历的顺序为根,左孩子,右孩子

下面二叉树的前序遍历顺序为 ABDHIEJCFKG

中序遍历

中序遍历又叫中根遍历,遍历的顺序为左孩子,根,右孩子

下面二叉树的中序遍历顺序为 HDIBJEAFKCG

后序遍历

后序遍历又叫后根遍历,遍历的顺序为左孩子,右孩子,根

下面二叉树的后序遍历顺序为 HIDJEBKFGCA

4) 拓扑排序

有向无环图

有向无环图,DAG(Directed Acyclic Graph),若一个有向图中不存在环,则称为有向无环图

拓扑排序

拓扑排序是一个有向无环图(DAG)的所有顶点的线性序列

每个顶点只能出现一次,如果A到B节点有路径,且A节点在B节点的前面,那么B节点不能在A节点的前面

下图是一个有向无环图

拓扑排序方法

1从 DAG 图中选择入度为0的顶点(即没有节点指向该节点)并输出,并删除此节点
上图中A符合
输出A 并删除A后,变成下图

2从 DAG 图中选择入度为0的顶点(即没有节点指向该节点)并输出,并删除此节点
上图中B符合
输出B 并删除B后,变成下图

3从 DAG 图中选择入度为0的顶点(即没有节点指向该节点)并输出,并删除此节点
上图中C符合
输出C 并删除C后,变成下图

4从 DAG 图中选择入度为0的顶点(即没有节点指向该节点)并输出,并删除此节点
上图中D符合
输出D 并删除D后,只剩下节点E,此时输出节点E

所以上图拓扑排序为ABCDE

3 思路分析

11 给定一棵二叉树,其前序遍历结果为:ABDECFG,中序遍历结果为:DEBACFG。请问这棵树的正确后序遍历结果是什么?( )

A EDBGFCA

B EDBGCFA

C DEBGFCA

D DBEGFCA

答案 A

分析

构造二叉树

1 由前序遍历A是根节点,中序遍历通过A分左右子树DEB和CFG

2 中序遍历DEB中在前序遍历BDE,其中DB和DB顺序是反的,所以D是B的左孩子
  前序遍历DE和中序遍历都是DE,所以E是D的右孩子

3 中序遍历CFG中在前序遍历也是CFG,其中CF在前序遍历和中序遍历顺序相同,所以F是C的右孩子
  前序遍历FG和中序遍历都是FG,所以G是F的右孩子

4 所以构造整棵二叉树如下
  所以后续遍历为 EDBGFCA

12 考虑一个有向无环图,该图包括4条有向边:(1,2),(1,3),(2,4),和(3,4)。以下哪个选项是这个有向无环图的一个有效的拓扑排序?( )

A 4,2,3,1

B 1,2,3,4

C 1,2,4,3

D 2,1,3,4

答案 B

分析

1 根据边构造有向无环图

2 输出入度为0的节点,并删除入度为0的节点和此节点对应连线
  入度为0的节点为1,输出1,并删1节点和1节点对应连线
  删除后如下图

3 输出入度为0的节点,并删除入度为0的节点和此节点对应连线
  入度为0的节点为2或3,选择输出2,并删2节点和2节点对应连线
  删除后如下图

4 输出入度为0的节点,并删除入度为0的节点和此节点对应连线
  入度为0的节点为3,选择输出3,并删3节点和3节点对应连线
  删除后只有节点4,入度为0,所以输出节点4,并删除节点4
本次拓扑排序的顺序为 1-2-3-4
5 接2,可以选择删3
  输出入度为0的节点,并删除入度为0的节点和此节点对应连线
  入度为0的节点为2或3,选择输出3,并删3节点和3节点对应连线
  删除后如下图

6 输出入度为0的节点,并删除入度为0的节点和此节点对应连线
  入度为0的节点为2,选择输出2,并删2节点和2节点对应连线
  删除后只有节点4,入度为0,所以输出节点4,并删除节点4
本次拓扑排序的顺序为 1-3-2-4

所拓扑排序有2种,对应的的顺序是1-2-3-4或1-3-2-4

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线性代数|机器学习-P11方程Ax=b求解研究

文章目录 1. 变量数和约束条件数大小分类2. 最小二乘法和Gram-schmidt变换2.1 Gram-schmidt变换2.2 最小二乘法2.2.1 损失函数-Lasso 和regression2.2.2 损失函数-Lasso2.2.3 损失函数-regression2.2.4 Regression岭回归-矩阵验证2.2.5 Regression岭回归-导数验证 3. 迭代和随机…

重新认识Word —— 制作简历

重新认识Word —— 制作简历 PPT的图形减除功能word中的设置调整页边距进行排版表格使用 我们之前把word长排版文本梳理了一遍,其实word还有另外的功能,比如说——制作简历。 在这之前,我们先讲一个小技巧: PPT的图形减除功能 …

Elasticsearch:Open Crawler 发布技术预览版

作者:来自 Elastic Navarone Feekery 多年来,Elastic 已经经历了几次 Crawler 迭代。最初是 Swiftype 的 Site Search,后来发展成为 App Search Crawler,最近又发展成为 Elastic Crawler。这些 Crawler 功能丰富,允许以…

Typora Markdown编辑器 for Mac v1.8.10 安装

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2. 应用程序显示软件图标,表示安装成功 三、运行调试1、修改主题2、显示文档列表,如下图3、查看版本信息 **安装完成&…

LearnDash+BuddyBoss:终极在线课程社区组合

您是否希望使用 WordPress 建立在线课程社区? 如果是这样,没有比LearnDash和BuddyBoss在线课程社区更好的组合了。使用这两款产品,您可以创建和销售在线课程、创建群组和讨论,并为您的学生提供整个社交网络,所有这些都…

CUDA 编程(1):使用Grid 和 Block分配线程

1 介绍 1.1 Grid 和 Block 概念 核函数以线程为单位进行计算的函数,cuda编程会涉及到大量的线程(thread),几千个到几万个thread同时并行计算,所有的thread其实都是在执行同一个核函数。 对于核函数(Kernel),一个核函数一般会分配1个Grid, 1个Grid又有很多个Block,1个Bloc…

【python】python GUI编程--tkinter模块初探

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

【大学物理】波动光学:光的衍射

大学物理(上) 可视化详解学习!| 第五讲 | 31分钟学习 光的干涉与衍射_哔哩哔哩_bilibili 第13章 波动光学-4 光的衍射-1 单缝衍射_哔哩哔哩_bilibili 0 definition 衍射也是波的性质之一,指的是波遇到障碍物时不再沿直线传播,进入障碍物背…

贪吃蛇双人模式设计(2)

敲上瘾-CSDN博客控制台程序设置_c语言控制程序窗口大小-CSDN博客贪吃蛇小游戏_贪吃蛇小游戏csdn-CSDN博客​​​​​​​ 一、功能实现: 玩家1使用↓ → ← ↑按键来操作蛇的方向,使用右Shift键加速,右Ctrl键减速玩家2使用W A S D按键来操…

NFT 智能合约实战-快速开始(1)NFT发展历史 | NFT合约标准(ERC-721、ERC-1155和ERC-998)介绍

文章目录 NFT 智能合约实战-快速开始(1)NFT发展历史国内NFT市场国内NFT合规性如何获得NFT?如何查询NFT信息?在 OpenSea 上查看我们的 NFT什么是ERC721NFT合约标准ERC-721、ERC-1155和ERC-998 对比ERC721IERC721.sol 接口内容关于合约需要接收 ERC721 资产 onERC721Received…

使用Leaflet-canvas-label进行个性化标注实践详解

目录 前言 一、leaflet-canvas-label属性 1、地图展示属性 2、Canvas文本标注属性 3、事件列表 二、属性设置实战 1、标注放大比例 2、字体颜色和方向偏移 3、标注文字透明色设置 4、标注显示层级 三、事件绑定 1、颜色改变 2、事件绑定解析 3、标记初始化的一个小…

数据结构(4):串

只需要掌握小题,在考纲中占比不大 1 串的定义 1.1 基本定义 字符串 数据结构三要数:逻辑结构、存储结构、运算 子串必须是连续的! 空格也是一个字符!每个空格字符占1B 1.2 串和线性表 2 串的基本操作 比值的操作!&…

定个小目标之刷LeetCode热题(13)

今天来看看这道题,介绍两种解法 第一种动态规划,代码如下 class Solution {public int maxSubArray(int[] nums) {int pre 0, maxAns nums[0];for (int x : nums) {// 计算当前最大前缀和pre Math.max(pre x, x);// 更新最大前缀和maxAns Math.ma…

入门级的卷积神经网络训练识别手写数字-小白轻松上手-含数据集+pyqt界面

代码下载地址: https://download.csdn.net/download/qq_34904125/89374845 本代码是基于python pytorch环境安装的。 下载本代码后,有个requirement.txt文本,里面介绍了如何安装环境,环境需要自行配置。 或可直接参考下面博文…

arm开发板移植sshd

移植sshd 文章目录 移植sshd1、准备工作2、编译zlib3、编译openssl4、编译openssh5、其他旧版本6、部署测试7、多用户配置8、sshd_config示例 1、准备工作 准备openssh-9.5p1.tar.gz openssl-1.1.1w.tar.gz zlib-1.2.11.tar.gz 我在http://10.45.156.100/IG2100/IG2100.git …

向AI请教如何说不

面对父母的催婚,你可以采取以下几个步骤来进行沟通和表达自己的立场: 理解与尊重:首先,要理解父母催婚背后的关心和期望。他们可能出于对你未来幸福和生活稳定的考虑。表达对他们关心的感激,这有助于建立良好的沟通基础…

SAS:coalescec函数和cmiss函数的应用及拓展

背景:CRF中收集了每个受试者3个RACE方面的信息,SDTM SPEC规定了RACE的生成规则为:若收集了多个RACE,RACE“MULTIPLE”,详细的RACE信息记录在SUPPDM中;若仅收集到一个RACE,则RACE等于RACE1-RACE3…

程序猿大战Python——流程控制——while循环

程序里的循环 目标:了解循环语句的作用。 在程序中,有时候会遇到代码需要重复多次运行的情况。 例如,一起来完成: (1)在生活中做事没让媳妇儿满意,跟她承认错误,说10遍&#xff1a…

【Linux】进程7——进程地址空间

1.再谈fork 之前提到了fork之后对父子进程返回不同的id值,给父进程返回子进程的pid,给子进程返回0,所以对于一个id如何存储两个值的说法,在我们之前已经提到过了一个概念叫做写时拷贝,就是在子进程要想修改父进程的id…

JavaScript学习|JavaScript 引入方式、JavaScript 基础语法、JavaScript 对象、BOM、DOM、事件监听、事件绑定

JavaScript 能做什么 1.能够改变文本内容 2.能够改变图像的src属性值 3.能够进行表单验证等 JavaScript 引入方式 内部脚本 1.内部脚本:将 JS代码定义在HTML页面中&#xff0c;JavaScript代码必须位于<script>与</script>标签之间。在 HTML 文档中可以在任意地…