abc,,de,g,,f,,,Example Output
cbegdfacgefdba35#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct node{ char data ; struct node * lc; struct node * rc;}bitree;int i;int ans;int max;bitree * pre_create(char str[51]){ bitree * t; if(str[++i]!=',') { t=(bitree *)malloc(sizeof(bitree)); t->data=str[i]; t->lc=pre_create(str); t->rc=pre_create(str); } else { t=NULL; } return t;}void inshow(bitree * tree){ bitree * t; t=tree; if(t!=NULL) { inshow(t->lc); printf("%c",t->data); inshow(t->rc); }}void postshow(bitree * tree){ bitree * t; t=tree; if(t!=NULL) { postshow(t->lc); postshow(t->rc); printf("%c",t->data); }}void pre_show(bitree * t){ if(t) { if(t->lc==NULL&&t->rc==NULL) { ans++; } pre_show(t->lc); pre_show(t->rc); }}void preshow(int count,bitree *t){ int k; if(t) { if(count==0) count=1; k=count; if(k>max) max=k; preshow(++count,t->lc); preshow(++k,t->rc); }}int main(){ int len; char str[51]; bitree * tree; while(scanf("%s",str)!=EOF) { i=-1; ans=0; max=0; len=strlen(str); tree=pre_create(str); inshow(tree); printf("/n"); postshow(tree); printf("/n"); pre_show(tree); printf("%d/n",ans); preshow(0,tree); printf("%d/n",max); } return 0;}
新闻热点
疑难解答