不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油o~

利用#号法来创建二叉树
输入:

ABD##E##C#F##

对应该输入的二叉树应为这样

解题思路:

用vector数组存储输入的节点数据
用前序遍历的顺序去建树
如果是#,则表明该节点为空
否则先创建左子树,然后右子树
递归调用

代码:

/***作者:魏宝航*2020年11月26日,下午23:55*/
#include<iostream>
#include<vector>
using namespace std;
class Node {public:char ch;Node* left;Node* right;Node() {ch = '\0';left = NULL;right = NULL;}Node(char ch, Node* left, Node* right) {this->ch = ch;this->left = left;this->right = right;}
};
static int i = 0;
Node* CreateTree(vector<char> arr,Node* root) {if (i < arr.size()) {char temp = arr[i++];if (temp == '#') {return NULL;}else {root = new Node();root->ch = temp;root->left = CreateTree(arr, root->left);root->right = CreateTree(arr, root->right);}}return root;
}
void preOrder(Node* root) {if (root == NULL) {return;}cout << root->ch << " ";preOrder(root->left);preOrder(root->right);
}
int main() {int n;cin >> n;vector<char> v;for (int i = 0; i < n; i++) {char ch;cin >> ch;v.push_back(ch);}Node* root=new Node();root=CreateTree(v,root);preOrder(root);
}

井号法(#)创建二叉树(利用前序遍历来建树)C++实现相关推荐

  1. 二叉树学习笔记之利用前序遍历递归创建二叉树

    利用前序遍历创建二叉树 树的遍历 前序遍历(preorder traversal) 利用前序遍历创建二叉树 中序遍历访问所有结点 前序遍历访问所有结点 后序遍历访问所有结点 实例 树的遍历 树的遍历是 ...

  2. 刻意练习:LeetCode实战 -- 二叉树的前序遍历

    背景 今天,第二期基础算法(Leetcode)刻意练习训练营 的打卡任务是二叉树的中序遍历,由于二叉树的遍历方式通常来说有四种:前序遍历.中序遍历.后序遍历以及层次遍历,而LeetCode也有二叉树的 ...

  3. python非递归前序遍历二叉树_LintCode66:二叉树的前序遍历(python)

    66. 二叉树的前序遍历 给出一棵二叉树,返回其节点值的前序遍历. 样例 样例 1: 输入:{1,2,3} 输出:[1,2,3] 解释: 1 / \ 2 3 它将被序列化为{1,2,3} 前序遍历 样 ...

  4. 14 二叉树的前序遍历(Binary Tree Preorder Traversal)

    文章目录 1 题目 2 描述 3 解决方案 3.1 递归算法 3.1.1 遍历法(Traverse) 思路 源码 3.1.2 分治法(Devide And Conquer) 思路 源码 3.2 非递归 ...

  5. 阿里笔试-二叉树由前序遍历和中序遍历推导后序遍历

    题目描述 已知一个二叉树的前序遍历结果是(ACDEFHGB) ,中序遍历结果是(DECAHFBG),请问后续遍历结果是(). 思路 由前序遍历的第一个节点A是根节点,把中序遍历分为(DEC)A(HFB ...

  6. 数据结构——前序线索二叉树及其前序遍历

    /************************ author's email:wardseptember@gmail.com date:2017.12.26 前序线索二叉树的前序遍历 ****** ...

  7. Java版二叉树的前序遍历查找、中序遍历查找和后序遍历查找

    文章收藏的好句子:任何挫折,如果无法彻底击败你,那一定会使你更强. 目录 1.二叉树的节点查找 1.1 前序遍历查找 1.2 中序遍历查找 1.3 后序遍历查找 1.二叉树的节点查找  1.1 前序遍 ...

  8. 二叉树的前序遍历(C语言)

    我们从两个方向讲解二叉树的前序遍历(递归+迭代) 一.递归 思想: 从根节点开始向其左孩子遍历每经过一个节点记录一下该节点的数值(只在第一次经过该节点时进行记录),当走到NULL时返回上一个节点,然后 ...

  9. LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium

    题目:Binary Tree Preorder Traversal 二叉树的前序遍历,同样使用栈来解,代码如下: 1 struct TreeNode { 2 int val; 3 TreeNode* ...

最新文章

  1. 初识JavaScript(二)
  2. [codevs 1917] 深海机器人问题
  3. 【软件开发底层知识修炼】二十八 C/C++中volatile的作用
  4. python 非线性多项式拟合_用python进行非线性回归-有什么简单的方法可以更好地拟合这些数据?...
  5. Exchange Server 2013系统要求
  6. HTML 去调table表单里面td之间的间距
  7. 祝心想事成无Bug,1024快乐!
  8. hp M1530一体机无法在OEM系统下安装驱动
  9. 创建一个 scrapy 爬虫项目
  10. caffe lmdb
  11. 避坑11_VScode在vue文件内template无法使用tab补齐标签
  12. Zemax操作25--像差理论和修正(球差、慧差、像散)
  13. 社交网络电影深度解析论文,社交网络 电影解析
  14. cannot import name '_validate_lengths' from 'numpy.lib.arraypad'
  15. UI自动化之分层思想pom模式
  16. 解决Win7无法登陆OneDrive并报错0x8004de40问题(亲测解决)
  17. python做数据可视化视频_B站上的数据可视化视频是怎么做的,用到了什么技术和工具?...
  18. 获取并显示服务器数据,客户端获取服务器数据解析
  19. Hash(散列)冲突解决之线性探测再散列和二次探测再散列
  20. 新形势下,企业如何做好数据安全治理?

热门文章

  1. 绝对隐私:华为公司员工待遇全面揭秘(转)
  2. java设计模式之门面模式
  3. 牛客编程巅峰赛S1第2场 - 青铜白银
  4. 2--java面向对象语法学习(部分1-变量,重载,重写)
  5. Navicat Premium绿色版安装
  6. 使用w3c生成xml文件
  7. office2007 向程序发送命令时出现问题 的解决办法
  8. 【Web技术】1397- 深入浅出富文本编辑器
  9. Flask中使用定时任务
  10. 侯江亭的一些介绍,我是一个不怕苦不怕累的人