当前位置:网站首页>信息学奥赛一本通 1340:【例3-5】扩展二叉树
信息学奥赛一本通 1340:【例3-5】扩展二叉树
2022-07-05 20:10:00 【君义_noip】
【题目链接】
【题目考点】
1. 二叉树
【解题思路】
解法1:
用getchar()或cin.get()每次读取一个字符。
先序序列的格式为:<根结点> <左子树的先序序列> <右子树的先序序列>
可以用递归的方法构建二叉树:
- 读入一个字符,作为根结点
- 递归构建左子树
- 递归构建右子树
- 将左右子树接在这棵树根结点的下面,返回根结点的地址
完成树的构建后,再输出这棵树的中序和后序遍历序列。
【题解代码】
解法1:
#include <bits/stdc++.h>
using namespace std;
struct Node//二叉树结点
{
char val;
int left, right;
};
Node node[1000];//结点池
int p = 1;
void inOrder(int r)//中序遍历
{
if(r != 0)
{
inOrder(node[r].left);
cout << node[r].val;
inOrder(node[r].right);
}
}
void postOrder(int r)//后序遍历
{
if(r != 0)
{
postOrder(node[r].left);
postOrder(node[r].right);
cout << node[r].val;
}
}
int createTree(char val)//传入要生成的二叉树的根的值,返回生成的二叉树的地址
{
int np;
if(val == '.')
return 0;
else
{
np = p++;
node[np].val = val;
node[np].left = createTree(cin.get());//读入字符,构建左子树
node[np].right = createTree(cin.get());//读入字符,构建右子树
return np;
}
}
int main()
{
int root = createTree(cin.get());
inOrder(root);
cout << endl;
postOrder(root);
return 0;
}
边栏推荐
- Is the education of caiqiantang reliable and safe?
- Is it safe for Galaxy Securities to open an account online?
- Four methods of random number generation | random | math | threadlocalrandom | securityrandom
- Debezium series: record the messages parsed by debezium and the solutions after the MariaDB database deletes multiple temporary tables
- [C language] merge sort
- Wildcard selector
- JVMRandom不可设置种子|问题追溯|源码追溯
- 95后阿里P7晒出工资单:狠补了这个,真香...
- Parler de threadlocal insecurerandom
- 《乔布斯传》英文原著重点词汇笔记(十二)【 chapter ten & eleven】
猜你喜欢
Win10 x64环境下基于VS2017和cmake-gui配置使用zxing以及opencv,并实现data metrix码的简单检测
Unity编辑器扩展 UI控件篇
14. Users, groups, and permissions (14)
Zero cloud new UI design
【数字IC验证快速入门】9、Verilog RTL设计必会的有限状态机(FSM)
leetcode刷题:二叉树10(完全二叉树的节点个数)
【数字IC验证快速入门】2、通过一个SoC项目实例,了解SoC的架构,初探数字系统设计流程
A solution to PHP's inability to convert strings into JSON
leetcode刷题:二叉树11(平衡二叉树)
Leetcode: binary tree 15 (find the value in the lower left corner of the tree)
随机推荐
Base du réseau neuronal de convolution d'apprentissage profond (CNN)
Debezium series: modify the source code to support drop foreign key if exists FK
third-party dynamic library (libcudnn.so) that Paddle depends on is not configured correctl
Leetcode brush question: binary tree 14 (sum of left leaves)
解决Thinkphp框架应用目录下数据库配置信息修改后依然按默认方式连接
浅浅的谈一下ThreadLocalInsecureRandom
Zero cloud new UI design
2020 CCPC 威海 - A. Golden Spirit(思维),D. ABC Conjecture(大数分解 / 思维)
How to select the Block Editor? Impression notes verse, notation, flowus
如何安全快速地从 Centos迁移到openEuler
IC科普文:ECO的那些事儿
【数字IC验证快速入门】2、通过一个SoC项目实例,了解SoC的架构,初探数字系统设计流程
DP: tree DP
字节跳动Dev Better技术沙龙成功举办,携手华泰分享Web研发效能提升经验
深度學習 卷積神經網絡(CNN)基礎
图嵌入Graph embedding学习笔记
leetcode刷题:二叉树12(二叉树的所有路径)
Analysis of openh264 decoded data flow
USACO3.4 “破锣摇滚”乐队 Raucous Rockers - DP
leetcode刷题:二叉树13(相同的树)