当前位置: 首页 > article >正文

P1305 新二叉树

题目:

P1305 新二叉树 - 洛谷 | 计算机科学教育新生态

题目描述

输入一串二叉树,输出其前序遍历。

输入格式

第一行为二叉树的节点数 n。(1≤n≤26)

后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。特别地,数据保证第一行读入的节点必为根节点。

空节点用 * 表示

输出格式

二叉树的前序遍历。

输入输出样例

输入 #1

6
abc
bdi
cj*
d**
i**
j**

输出 #1

abdicj

思路:

1.可以用一维数组+结构体的方法构建一个二叉树,由于题目所说(特别地,数据保证第一行读入的节点必为根节点。)并且我们前序遍历的时候需要知道根节点的下标,所以我们可以提取第一行输入,记录其根节点的下标,之后就是正常的n-1行的输入。

代码如下:

#include<iostream>
#include<string>
using namespace std;
struct Node{
	char left;
	char right;
};
Node tree[5000];
int n;
string s;
void dfs(char pos)
{
	cout << pos;
	if(tree[pos].left != '*')
	dfs(tree[pos].left);
	if(tree[pos].right != '*')
	dfs(tree[pos].right);
	
}
int main(void)
{
	cin >> n;
	cin >> s;
	char root,l,r;
	root = s[0] ;
	l = s[1];
	r = s[2];
	tree[root].left = l;
	tree[root].right = r;
	for(int i = 1 ; i <= n - 1 ; i++)
	{
		cin >> s;
		tree[s[0]].left = s[1];
		tree[s[0]].right = s[2];
	}
	dfs(root);
 } 


http://www.kler.cn/a/446570.html

相关文章:

  • Redis应用—9.简单应用汇总
  • 实现 WebSocket 接入文心一言
  • springmvc的拦截器,全局异常处理和文件上传
  • 解决docker环境下aspose-words转换word成pdf后乱码问题
  • Springboot logback 日志打印配置文件,每个日志文件100M,之后滚动到下一个日志文件,日志保留30天(包含traceid)
  • 【机器学习】机器学习的基本分类-强化学习(Reinforcement Learning, RL)
  • RPA 助力电商:自动化商品信息上传,节省人力资源 —— 以影刀 RPA 为例【rpa.top】
  • 【信息系统项目管理师】高分论文:论信息系统项目的成本管理(社区网格化管理平台系统)
  • 如何使用Python进行音频片断合成
  • vscode配置markdown代码片段snippet不生效问题
  • MFC/C++学习系列之简单记录13
  • Pytorch常用内置优化器合集
  • lvs介绍与应用
  • 提示词工程-Prompt Engineering
  • 关于小程序内嵌h5打开新的小程序
  • Spring Boot 核心技术解析与应用实践
  • 【深度学习量化交易10】miniQMT快速上手教程案例集——使用xtQuant获取板块及成分股数据篇
  • IIS漏洞复现
  • 如何进行JS框架搭建
  • 一二三物联网 | 工业技改盛事,共绘产业升级新篇章
  • 递归实现指数型枚举(递归)
  • pydantic BaseModel
  • C++点云大文件读取
  • BenchmarkSQL使用教程
  • object-c 2.0入门笔记
  • srping2.0+升级到spring3.0+遇到的问题,es部分记录一下