今日份水题开始。希望有想要提高的同学跟我们一起来刷题0.0
4.14日每日一题——新二叉树
作者简介:一个从工业设计改行学嵌入式的年轻人
✨联系方式:2201891280(QQ)
⏳全文大约阅读时间: 20min
P1305 新二叉树
和昨天的又有啥区别呢,直接建树就完事了。然后按照
执佬
的要求,使用非递归的方式实现前序遍历。
#include
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;
}
今天就这样,明日再见0.0