
二叉搜索树 hdu3791
基于ASCII字符建立二叉搜索树
发布日期:2021-05-16 17:25:06
浏览次数:14
分类:精选文章
本文共 721 字,大约阅读时间需要 2 分钟。
一款基于ASCII字符的二叉搜索树(BST)建立与比较工具
本程序设计用于验证给定字符串是否能唯一确定二叉搜索树结构。具体实现方式如下所示:
程序中采用字符数字来代替常规BST节点值,其中'-'号字符用于表示BST中的"终止节点"。在代码中,节点的左子树通过编号2*root
来表示,右子树则通过2*root +1
来表示。
- 树的插入逻辑
- 如果当前节点的值小于要插入的值,则左插入,即进入左子树(root*2)
- 否则,右插入,即进入右子树(root*2+1)
- 树的构建逻辑
- 核心逻辑
- 先从标准输入中读取n
- 执行建树操作
- 逐个字符串进行比较
- 遍历整个数组,找到任何一个位置,树1和树2的值不一致即可判定为"NO"
- 如果所有节点均一致,则输出"YES"
- 取第一个节点都为1,继续比较右节点
- tree1右节点为3,tree2则为2,产生差异,输出"NO"
插入的核心逻辑是找到合适的位置,把新节点插入到正确的子树中。我们从根节点(root=1)开始检查:
值插入后,目标节点的位置保存在rt
变量中 值插入后,目标节点的位置保存在rt变量中 插入完成后,节点值赋值给对应位置
主函数build
接收一个字符数组,逐个字符插入树中,首先将第一个字符作为根节点,其余字符按顺序依次插入左或右子树中,与插入函数insert
配合使用
主要功能是对两个字符串生成的BST树进行比较。对于长度为n的两个字符串:
举例: 输入字符串为"123"和"132" tree1的结构: 1 /
2 3 / 2 tree2的结构: 1 / 3 2 3逻辑判断过程:
这个程序可以作为基础验证工具,帮助开发人员快速判断不同字符串对应树结构是否一致
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年05月10日 21时44分51秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
通信过程图
2019-03-21
maven核心
2019-03-21
使用maven
2019-03-21
依赖范围scope
2019-03-21
apache服务器 vs Tomcat服务器
2019-03-21
springboot:集成 Jsp
2019-03-21
Python:简介
2019-03-21
python:input
2019-03-21
python:字符串
2019-03-21
cobaltstrike生成一个原生c,然后利用xor加密解密执行
2019-03-21
HTML中如何给HTML元素添加事件
2019-03-21
IDEA springMVC不报错出现访问404问题
2019-03-21
Redis概述和基础
2019-03-21
SSH整合的404错误
2019-03-21
wpf 使用Font Awesome
2019-03-21
阿里云Windows服务器+PHPStudy+apache 如何部署SSL证书
2019-03-21
Windows10:远程桌面连接报错“出现身份验证错误。要求的函数不受支持”
2019-03-21
C++ 错误:“xxx” does not name a type
2019-03-21
redis的发布和订阅
2019-03-21
lettcode 221. 最大正方形
2019-03-21