计算机考研408有向无环图描述表达式可靠构造方法

目录

  • 前言
  • 目标(以王道书为例)
  • 构造方法
    • 1. 建树
    • 2. 后序遍历
      • 1. a
      • 2. b
      • 3. +
      • 4. b
      • 5. c
      • 6. d
      • 7. +
      • 8. *
      • 9. *
      • 10. c

前言

对王道视频中的分层合并思想不是很满意,笔者提出自己的构造方法。

目标(以王道书为例)

在这里插入图片描述

构造方法

笔者通过王道书中给出的表达式例子介绍构造方法

1. 建树

通过表达式构造二叉树:
在这里插入图片描述

2. 后序遍历

  1. 创建一个空森林
  2. 后序遍历中如果无法继续在森林中跟踪当前结点,则如果最近一次跟踪的子树与当前结点没有祖先关系,则将当前结点作为最近一次跟踪的子树的根节点,否则作为新的树加入森林中。
  3. 当前结点的左子树必在森林中,则只需通过左子树任意叶节点进行寻根操作就可以找到森林中左子树的根节点,将当前结点作为森林中该左子树的根结点。跟踪当前结点
  4. 如果能继续在森林中跟踪当前结点,即能找到相同的遍历序列(找到相同的树),则继续跟踪。

下面通过王道书的例子解释“跟踪”的概念和构造方法。

1. a

a不在森林中,无法继续在森林中跟踪a,则将a作为空树的根结点,跟踪a。
在这里插入图片描述

2. b

无法跟踪b,最近一次跟踪a,且a、b没有祖先关系,则将b作为新树,跟踪b。
在这里插入图片描述

3. +

无法继续跟踪+,最近一次跟踪b,且+、b有祖先关系,则将+作为b的根,左子树a必存在,从a寻根结果为a,将+作为a的根,跟踪+。
在这里插入图片描述

4. b

能跟踪到b,则继续跟踪b。
在这里插入图片描述

5. c

无法跟踪c,最近一次跟踪b,且没有祖先关系,则将c作为新树,跟踪c。
在这里插入图片描述

6. d

无法跟踪d,最近一次跟踪c,且没有祖先关系,则将d作为新树,跟踪d。
在这里插入图片描述

7. +

最近一次跟踪d,无法跟踪+(因为最近一次跟踪d,而d没有父亲+),且d、+有祖先关系,则将+作为d的根,左子树c必存在,从c寻根结果为c,将+作为c的根,跟踪+。
在这里插入图片描述

8. *

最近一次跟踪+,无法跟踪*(因为最近一次跟踪+,而+没有父亲*),且+、*有祖先关系,则将*作为+的根,左子树b必存在,从b寻根结果为b,将*作为b的根,跟踪*。
在这里插入图片描述

9. *

最近一次跟踪*,无法跟踪*(因为最近一次跟踪*,而*没有父亲*),且*、*有祖先关系,则将*作为*的根,左子树必存在,从a(或b)的寻根结果为+,将*作为+的根,跟踪*。
在这里插入图片描述

10. c

能跟踪到c(因为能找到相同的c),

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

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

相关文章

数据结构——二叉树(堆)

大家好我是小峰,今天我们开始学习二叉树。 首先我们来学习什么是树? 树概念及结构 树是一种 非线性 的数据结构,它是由 n ( n>0 )个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的…

Python爬虫详解:原理、常用库与实战案例

前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言引言:一、爬虫原理1. HTTP请求与响应过程2. 常用爬虫技术 二、P…

基于ROS软路由的百元硬件升级方案实现突破千兆宽带

前言 很多用户得利于FTTR光网络不断推广,家用宽带带宽已经实现千兆速率的突破。而现在很多ISP运营商已经在多个城市率先推出2000M光宽带。这种情况下,要想将自家宽带的带宽能够充分发挥利用,就需要对原有的千兆设备进行升级来满足突破千兆的…

基于RFID技术的电缆温度监测方案及架构框架

在我们日常生活中,电力系统无处不在,为人类社会的发展提供了强大的动力支持。然而,在这个庞大的系统中,电缆作为传输电能的重要组成部分,其运行的安全性和稳定性至关重要。 随着城市化进程不断加快以及人们对用电需求的…

企业必备! 防员工偷懒神器,工作状况一目了然

在当前企业管理中,员工的工作状态和工作效率一直是管理者们关注的焦点。为了更加有效地监管员工的工作微信使用情况,微信管理系统成为了企业必备的神器。 这款系统不仅可以实时监控员工的工作微信,还具有多种实用功能,帮助企业管…

西电计科大三下SOC微体系结构设计作业合集

目录 一.VHDL设计作业 1.基于硬件描述语言的3-8译码器逻辑电路设计 2.8位双向移位寄存器设计 3.基于有限状态机的自助售票系统设计 4.按键消抖电路设计 5.同步环形FIFO设计 6.线上实验——时钟模块设计 7.线上实验——原码二位乘法器设计 8.线上实验——布斯乘法器设…

基于JSPM的宜佰丰超市进销存管理系统

目录 背景 技术简介 系统简介 界面预览 背景 互联网的迅猛发展彻底转变了全球众多组织的管理策略。自20世纪90年代起,中国政府和各类企事业单位便开始探索利用互联网技术进行信息管理。然而,由于当时网络覆盖不广泛、用户接受度不高、互联网相关法律…

苹果IPA上传错误排查:常见问题解决方案汇总

目录 引言 摘要 第二步:打开appuploader工具 第二步:打开appuploader工具,第二步:打开appuploader工具 第五步:交付应用程序,在iTunes Connect中查看应用程序 总结 引言 在将应用程序上架到苹果应用商…

旧衣回收小程序开发,回收市场的发展趋势

一、回收背景 每年到换季时期,就会产生大量的废弃衣物。随着人们生活水平的提高,闲置旧衣服逐年增加,面对满满当当的衣柜,大众也只能进行丢弃,但这也造成了损失,同时也造成了较大的资源浪费。 其实&#…

【leetcode】双指针(二)

标题: 【leetcode】双指针(二) 水墨不写bug 正文开始: (一)总和为目标值的两个数 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况&#…

kettle使用MD5加密增量获取接口数据

kettle使用MD5加密增量获取接口数据 场景介绍: 使用JavaScript组件进行MD5加密得到Http header,调用API接口增量获取接口数据,使用json input组件解析数据入库 案例适用范围: MD5加密可参考、增量过程可参考、调用API接口获取…

【TI毫米波雷达】IWR6843AOP的官方文件资源名称BUG,选择xwr68xx还是xwr64xx,及需要注意的问题

【TI毫米波雷达】IWR6843AOP的官方文件资源名称BUG,选择xwr68xx还是xwr64xx,及需要注意的问题 文章目录 demo工程out_of_box文件调试bin文件名称需要注意的问题附录:结构框架雷达基本原理叙述雷达天线排列位置芯片框架Demo工程功能CCS工程导…

这里有份百度Create大会超长剧透,请查收!

作者简介: 辭七七,目前大二,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&#x1f…

19c使用Datapump做数据迁移

环境: 源库目标库IP192.168.37.200192.168.37.201系统版本RedHat 7.9RedHat 7.9数据库版本19.3.0.0.019.3.0.0.0SIDbegtarhostnamebegtar数据量412KB 详细说明:因为只是做练习,这里采用了两个单例19c作为源端和目的端服务器,环境…

【网站项目】面向学生成绩分析系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

技术揭秘:如何打造完美互动的充电桩硬件与服务平台?

充电桩平台全套源码地址 https://gitee.com/chouleng/cdzkjjh.git 这张图像是一个系统或服务的架构图。以下是对图中各个部分的描述: 前端: 位于图像的顶部,颜色为浅绿色。用户服务端: 紧邻前端,颜色为淡黄色。设备服…

基于java+SpringBoot+Vue的校园交友网站设计与实现

基于javaSpringBootVue的校园交友网站设计与实现 开发语言: Java 数据库: MySQL技术: SpringBoot MyBatis工具: IDEA/Eclipse、Navicat、Maven 系统展示 前台展示 后台展示 系统简介 整体功能包含: 校园交友网站是一个为在校师生提供一个交流互动、寻找朋友的…

CSS3 实现文本与图片横向无限滚动动画

文章目录 1. 实现效果2.html结构3. css代码 1. 实现效果 gif录屏比较卡&#xff0c;实际很湿滑&#xff0c;因为是css动画实现的 2.html结构 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"…

[蓝桥杯练习题]出差

一道DJ题,重要的是隔离时间,把隔离时间加在边权上即可 现实生活的题大多都是无向图建图,需要边的两端点各自上邻接表和相同权重 #include<bits/stdc.h> using namespace std; #define ll long long const int N1005; const int M10005; struct edge{int to;ll w;edge(int…

招聘信息分享(第一期)

今天给大家带来——测绘、地信、遥感领域的事业单位招聘信息&#xff01;这也是我自己在关注的&#xff0c;自己应聘单位大多时间已经截至&#xff0c;后期会陆续分享&#xff0c;先分享近期招聘的事业单位 文章目录 1、宁夏大学2024年人才招聘2、甘肃有色冶金职业技术学院3、…