题目描述

利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的双亲结点。约定二叉树结点数据为单个大写英文字符。当接收的数据是字符“#”时表示该结点不需要创建,否则创建该结点。最后再输出创建完成的二叉树中的指定结点的双亲结点。注意输入数据序列中的“#”字符和非“#”字符的序列及个数关系,这会最终决定创建的二叉树的形态。

输入

输入用例分2行输入,第一行接受键盘输入的由大写英文字符和“#”字符构成的一个字符串(用于创建对应的二叉树),第二行为指定的结点数据。

输出

用一行输出该用例对应的二叉树中指定结点的双亲结点。若相应双亲结点不存在则以“#”代替。

样例输入复制

A##
A
ABC####
B

样例输出复制

#
A

这道题也可以用数组模拟二叉树,28行,这类型的题目用数组实在是太香了;解释在我的注释里,希望可以对你们有帮助;

#include <iostream>
using namespace std;
char a[100]={'0'};//定义全局变量
void create(int i)
{char data;cin>>data;if(data!='#'){a[i]=data;create(2*i);//递归创建左孩子create(2*i+1);//递归创建右孩子}
}
int main()
{create(1);//把二叉树的根放在数组下标为1的位置上,这样左孩子就直接是2*i而不是2*i+1char key;cin>>key;for(int i=1;i<100;i++){if(a[i]==key)//在数组中查找key值对应的结点{if(a[i/2]>='A'&&a[i/2]<='Z') cout<<a[i/2];//被找到的结点的父节点下标就是i/2,再判断父节点是否存在else  cout<<"#";//其他情况直接输出#}}return 0;
}

SWUST OJ 1052: 输出利用先序遍历创建的二叉树中的指定结点的双亲结点相关推荐

  1. SWUST OJ#1052 输出利用先序遍历创建的二叉树中的指定结点的双亲结点

    目录 题目 思路 代码 题目 题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的双亲结点.约定二叉树结点数据为单个大写英文字符.当接收的数据是字符"#"时表示该结点 ...

  2. SWUST OJ 1051: 输出利用先序遍历创建的二叉树中的指定结点的子结点

    先吐槽一下"孩子"居然是禁止使用的词汇?!我说"孩子节点都不行"嘛 题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的儿子结点.约定二叉树结点数 ...

  3. SWUST OJ 1053: 输出利用先序遍历创建的二叉树中的指定结点的度

    水了三题一摸一样的题目,好快乐 题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树中指定结点的度.约定二叉树结点数据为单个大写英文字符.当接收的数据是字符"#"时表示该结点不需 ...

  4. SWUST OJ#1051(数据结构之输出利用先序遍历创建的二叉树中的指定结点的Child结点)

    目录 题目 思路 数据结构代码 小结 题目 思路 从根节点开始遍历,在节点不为空的前提下,进行类似与数学的分类讨论!!!接下来请各位看代码部分,有疑问评论区留言,有问必答!!! 数据结构代码 #inc ...

  5. SWUST OJ 978: 输出利用先序遍历创建的二叉树的中序遍历序列

    题目描述 利用先序递归遍历算法创建二叉树并输出该二叉树的中序遍历序列.先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建 ...

  6. SWUST OJ 980: 输出利用先序遍历创建的二叉树的层次遍历序列

    [24行]之前看到众多巨佬用数组写二叉树,然后在他们的基础上,我发现层序遍历完全可以用数组写并且代码不超过30行.也许他们认为过于简单故未单独写博文,于是我打算补一下,希望各位不要在意. 题目: 用数 ...

  7. SWUST OJ 971: 统计利用先序遍历创建的二叉树的深度

    题目描述 利用先序递归遍历算法创建二叉树并计算该二叉树的深度.先序递归遍历建立二叉树的方法为:按照先序递归遍历的思想将对二叉树结点的抽象访问具体化为根据接收的数据决定是否产生该结点从而实现创建该二叉树 ...

  8. #swust oj978,979,980输出利用先序遍历创建的二叉树的中序遍历序列,后序遍历序列,层次遍历序

    输出利用先序遍历创建的二叉树的中序遍历序列,后序遍历序列,层次遍历序列 ***层次遍历思路: 1.初始化一个队列 2.把根节点指针入队 3.队列非空时:出队列取得一个结点指针,访问该节点,若该节点的左 ...

  9. SWUSTOJ #978 输出利用先序遍历创建的二叉树的中序遍历序列

    SWUSTOJ #978 输出利用先序遍历创建的二叉树的中序遍历序列 题目 输入 输出 样例输入 样例输出 源代码 题目 利用先序递归遍历算法创建二叉树并输出该二叉树的中序遍历序列.先序递归遍历建立二 ...

最新文章

  1. urlrewrite使用小结
  2. Parabola(抛物线)
  3. shinyapps安装
  4. 写给计算机的大学生!
  5. python创建虚拟环境报错typeerror_解决Python中报错TypeError: must be str, not bytes问题
  6. 中国强制应用市场下架所有非认证开发者提交的应用
  7. PyTorch 入坑八:卷积与转置卷积
  8. apache恢复服务器文件,apache服务器的配置文件是
  9. 一名全栈工程师的必备工具箱
  10. 从四大云计算公司走向 看云行业趋势
  11. 安卓基础巩固(二):四大组件:Activity、Service、Broadcast、Content Provider
  12. aws saa 认证价值大吗?aws认证指的是什么?
  13. Git推送错误: failed to push some refs to ‘git@gitee.com:XXXXXX’
  14. 雨林木风 linux操作系统,“雨林木风”操作系统门户正式上线
  15. ucos 和uclinux的区别及各自的特点
  16. 微信小程序:云开发开通
  17. cesium实现流入迁徙图(仿echarts)(着色器)(cesium篇.52)
  18. 五级流水线CPU的实现与改进
  19. vue引入JQ的方法
  20. 计算机科学与技术文献翻译,计算机科学与技术外文文献翻译.doc

热门文章

  1. 微信小程序入门级教程(持续更新)
  2. iOS App文件共享
  3. 创建全局AD组与用户
  4. Windows快捷键 (持续更新)
  5. windows BitLocker解密
  6. 氢os android系统耗电,氢OS#一加手机上个人收藏如今安卓系统系统还是必须大力推广...
  7. stunnel加密隧道
  8. 兴趣电商是“真概念”,还是“伪命题”?
  9. 当互联网巨头下场买菜
  10. mysql修改字段卡住问题总结