zzqm 提交的代码
提交时间:2022年4月10日 09:35 语言:C++运行时间:4ms占用内存:281K
运行状态: Accepted
题目:二叉树遍历1161

大会员可查看代码,点此开通大会员

                
                    #include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<string>
#include<cstring>
#include<string.h>

using namespace std;

char s[100001];
int num=0;
typedef struct node{
    char data;
    struct node *lchild,*rchild;
}*BitTree;

//创建二叉树
void create(BitTree &t){
    //cout<<strlen(s)<<endl;
    char c;
    if(num==strlen(s)) return;
    c=s[num++];
    if(c=='#') t=NULL;
    else{
        t=new node;
        t->data=c;
        t->lchild=NULL;
        t->rchild=NULL;
        create(t->lchild);
        create(t->rchild);
    }
}

//先序
void PreOrder(BitTree &t){
    if(t!=NULL){
        cout<<t->data<<' ';
        PreOrder(t->lchild);
        PreOrder(t->rchild);
    }
}
//中序
void InOrder(BitTree &t){
    if(t!=NULL){
        InOrder(t->lchild);
        cout<<t->data<<' ';
        InOrder(t->rchild);
    }
}
//后序
void PostOrder(BitTree &t){
    if(t!=NULL){
        PostOrder(t->lchild);
        PostOrder(t->rchild);
        cout<<t->data<<' ';
    }
}


int Leaf(BitTree t){
    if(t==NULL) return 0;
    if(t->lchild==NULL&&t->rchild==NULL) return 1;
    return Leaf(t->lchild)+Leaf(t->rchild);
}

int main(){
    while(cin>>s){
        num=0;
        BitTree t;
        create(t);
        InOrder(t);
		cout<<endl;
    }
}