☘前言☘
今日份水题开始。希望有想要提高的同学跟我们一起来刷题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; }