zzqm 提交的代码
提交时间: 2022 四月
语言: C++
运行时间: 4ms
占用内存: 281K
Accepted
代码内容

登录之后查看代码,点此登录账号

#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;
    }
}