數(shù)據(jù)結(jié)構(gòu)實驗之二叉樹二:遍歷二叉樹
TimeLimit: 1000MS Memory Limit: 65536KB
SubmitStatistic
已知二叉樹的一個按先序遍歷輸入的字符序列,如abc,,de,g,,f,,, (其中,表示空結(jié)點)。請建立二叉樹并按中序和后序的方式遍歷該二叉樹。
Input
連續(xù)輸入多組數(shù)據(jù),每組數(shù)據(jù)輸入一個長度小于50個字符的字符串。
Output
每組輸入數(shù)據(jù)對應(yīng)輸出2行:第1行輸出中序遍歷序列;第2行輸出后序遍歷序列。
Example Input
abc,,de,g,,f,,,
Example Output
cbegdfa
cgefdba
Hint
Author
xam
#include<string.h>#include<stdio.h>#include<stdlib.h>typedef struct node{ int data; struct node*l; struct node*r;}tree;tree *creat(char *&ss){ if(*ss==',') { ss++; return NULL; } tree*p; p = (tree*)malloc(sizeof(tree)); p->data = *ss++; p->l = creat(ss); p->r = creat(ss); return p;}void lastout(tree*p){ if(p) { lastout(p->l); lastout(p->r); printf("%c",p->data); }}void inout (tree*p){ if(p) { inout(p->l); printf("%c",p->data); inout(p->r); }}int main(){ char ss[51],*p; while(~scanf("%s",ss)) { p = ss; tree*root; root = creat(p); inout(root); printf("/n"); lastout(root); printf("/n"); }}/***************************************************User name: jk160505徐紅博Result: AcceptedTake time: 0msTake Memory: 108KBSubmit time: 2017-02-07 11:03:58****************************************************/
新聞熱點
疑難解答