[保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现

这篇具有很好参考价值的文章主要介绍了[保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目链接:

二叉树遍历_牛客题霸_牛客网编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。题目来自【牛客题霸】https://www.nowcoder.com/share/jump/437195121692547007478

描述

编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。

输入描述:

输入包括1行字符串,长度不超过100。

输出描述:

可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。 每个输出结果占一行。

示例1

输入:

abc##de#g##f###

输出:

c b e g d f a 

源代码:

#include<iostream>
#include<string>
using namespace std;

//例题10.1 二叉树遍历
struct TreeNode {
	char data;
	TreeNode* leftChild;
	TreeNode* rightChild;
	TreeNode(char c): data(c), leftChild(NULL), rightChild(NULL){}
};

TreeNode* Build(int& pos, string str) {
	char c = str[pos++];
	if (c == '#') {
		return NULL;
	}
	TreeNode* root = new TreeNode(c);
	root->leftChild = Build(pos, str);
	root->rightChild = Build(pos, str);

	return root;
}

void Inorder(TreeNode* root) {
	if (root == NULL) {
		return;
	}
	Inorder(root->leftChild);
	cout << root->data << " ";
	Inorder(root->rightChild);

	return;
}

int main()
{
	string s;
	cin >> s;
	int pos = 0;
	TreeNode* root = Build(pos, s);
	Inorder(root);
	cout << endl;

	return 0;
}

提交结果:

[保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现,机试刷题记录,考研,c++,数据结构,考研机试,研究生复试

 文章来源地址https://www.toymoban.com/news/detail-665778.html

到了这里,关于[保研/考研机试] KY11 二叉树遍历 清华大学复试上机题 C++实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [保研/考研机试] KY30 进制转换-大整数转二进制 清华大学复试上机题 C++实现

    将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。 输入描述: 多组数据,每行为一个长度不超过30位的十进制非负整数。 (注意是10进制数字的个数可能有30个,而非30bits的整数) 输出描述: 每行输出对应的二进制数。 仍然是“除2取余法”,主要的区别在

    2024年02月13日
    浏览(42)
  • [考研机试] KY20 完数VS盈数 清华大学复试上机题 C++实现

    一个数如果恰好等于它的各因子(该数本身除外)子和,如:6=3+2+1。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 题目没有任何输入。 输出2到60之间所有“完数”和“盈数”,并以如下形式输出: E: e1 e2 e3 ......(ei为完

    2024年02月13日
    浏览(30)
  • [保研/考研机试] KY80 进制转换 北京大学复试上机题 C++实现

    KY80 进制转换 https://www.nowcoder.com/share/jump/437195121691735660774 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。 输入描述: 输入一个十六进制的数值字符串。 输出描述: 输出该数值的十进制字符串。 输

    2024年02月13日
    浏览(27)
  • [保研/考研机试] KY56 数制转换 北京大学复试上机题 C++实现

    数制转换 https://www.nowcoder.com/share/jump/437195121691734210665 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。 不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。 输入描述: 输入只有一行,包含三个

    2024年02月13日
    浏览(34)
  • [保研/考研机试] KY180 堆栈的使用 吉林大学复试上机题 C++实现

    堆栈的使用_牛客题霸_牛客网     堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。其中 push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈的使用。 输入描述:     对于每组测试数据,第一行是一个正整数 n(0 n = 1

    2024年02月13日
    浏览(37)
  • [保研/考研机试] KY87 鸡兔同笼 北京大学复试上机题 C++实现

    一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。 每组测试数据占1行,每行一个正整数a (a 32768) 输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数

    2024年02月13日
    浏览(25)
  • [保研/考研机试] KY129 简单计算器 浙江大学复试上机题 C++实现

        读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 输入描述:     测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。

    2024年02月13日
    浏览(30)
  • [保研/考研机试] KY187 二进制数 北京邮电大学复试上机题 C++实现

    大家都知道,数据在计算机里中存储是以二进制的形式存储的。 有一天,小明学了C语言之后,他想知道一个类型为unsigned int 类型的数字,存储在计算机中的二进制串是什么样子的。 你能帮帮小明吗?并且,小明不想要二进制串中前面的没有意义的0串,即要去掉前导0。 输入

    2024年02月13日
    浏览(28)
  • [保研/考研机试] KY102 计算表达式 上海交通大学复试上机题 C++实现

    对于一个不存在括号的表达式进行计算 输入描述: 存在多组数据,每组数据一行,表达式不存在空格 输出描述: 输出结果 ①设立运算符和运算数两个栈,,一个用来存储运算符,另一个用来存储运算数。 ②在运算符栈中放置一个特殊运算符#,其优先级最低。 ③将表达式尾部

    2024年02月13日
    浏览(35)
  • [保研/考研机试] KY110 Prime Number 上海交通大学复试上机题 C++实现

    Prime Number https://www.nowcoder.com/share/jump/437195121691717713466 Output the k-th prime number. 输入描述: k≤10000 输出描述: The k-th prime number. 输入: 输出:

    2024年02月13日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包