【4.14日题解】——新二叉树

简介: 【4.14日题解】——新二叉树

☘前言☘

今日份水题开始。希望有想要提高的同学跟我们一起来刷题0.0

4.14日每日一题——新二叉树


🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人

✨联系方式:2201891280(QQ)

⏳全文大约阅读时间: 20min


全文目录

☘前言☘

解题思路

📑写在最后

P1305 新二叉树


解题思路

和昨天的又有啥区别呢,直接建树就完事了。然后按照执佬的要求,使用非递归的方式实现前序遍历。


#include <cstdio>
struct node{
        int left;
        int right;
}Node[30];
char s[30];
int main(){
        int zhan[30],n, top = 0, hash[30] = {0}, root;//hash for root
        scanf("%d",&n);//read n
        for(int i = 0;i < n;++i){
                char a, l, r;
                scanf("%s", s);
                a = s[0], l = s[1], r = s[2];
                if(a == '*') continue;
                a -= 'a';
                if(l != '*')    hash[l - 'a'] = 1, Node[a].left = l - 'a';
                else    Node[a].left = -1;
                if(r != '*')    hash[r - 'a'] = 1, Node[a].right = r- 'a';
                else    Node[a].right = -1;
        }//read all data
        for(int i = 0;i < n;++i)
                if(!hash[i])    {root = i;break;}
        zhan[top++] = root;     //ruzhan root
        while(top){
                char tmp = zhan[--top];
                printf("%c", tmp + 'a');
                if(Node[tmp].right != -1) zhan[top++] = Node[tmp].right;
                if(Node[tmp].left != -1) zhan[top++] = Node[tmp].left;
        }
        return 0;
}


相关文章
|
6月前
|
Java C++ Python
leetcode-654:最大二叉树
leetcode-654:最大二叉树
53 0
|
5月前
|
机器学习/深度学习 存储 算法
LeetCode 题目 95:从递归到动态规划实现 不同的二叉搜索树 II
LeetCode 题目 95:从递归到动态规划实现 不同的二叉搜索树 II
|
5月前
|
存储 机器学习/深度学习 算法
LeetCode 题目 102:二叉树的层序遍历
LeetCode 题目 102:二叉树的层序遍历
|
5月前
|
存储 算法 数据可视化
LeetCode 题目 96:从动态规划、递归到卡塔兰数实现不同的二叉搜索树
LeetCode 题目 96:从动态规划、递归到卡塔兰数实现不同的二叉搜索树
|
6月前
|
存储
二叉树常见题目
二叉树常见题目
31 0
|
6月前
|
API
Leetcode-二叉树oj题
Leetcode-二叉树oj题
30 0
Leetcode-二叉树oj题
|
6月前
LeetCode-二叉树OJ题
LeetCode-二叉树OJ题
33 0
|
6月前
二叉树OJ题目(2)
二叉树OJ题目(2)
32 0
|
6月前
|
存储 算法
常见的二叉树系统题解(二)
常见的二叉树系统题解(二)
|
6月前
|
存储 算法
常见的二叉树系统题解(一)
常见的二叉树系统题解(一)