数据结构实验之二叉树二:遍历二叉树
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
已知二叉树的一个按先序遍历输入的字符序列,如abc,,de,g,,f,,, (其中,表示空结点)。请建立二叉树并按中序和后序的方式遍历该二叉树。
Input
连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。
Output
每组输入数据对应输出2行:
第1行输出中序遍历序列;
第2行输出后序遍历序列。
Sample Input
abc,,de,g,,f,,,
Sample Output
cbegdfa cgefdba
Hint
Source
xam
#include<stdio.h> #include<stdlib.h> struct tree { char data; struct tree*l,*r; }; char s[55]; int ans; struct tree*create() { struct tree*root; char c=s[ans++]; if(c==',')root=NULL;//表示子树为空 else { root=(struct tree*)malloc(sizeof(struct tree)); root->data=c; root->l=create(); root->r=create(); }//先序建立一个树 return root; } void inorder(struct tree *root) { if(root) { inorder(root->l); printf("%c",root->data); inorder(root->r); } } void aforder(struct tree*root) { if(root) { aforder(root->l); aforder(root->r); printf("%c",root->data); } } int main() { while(~scanf("%s",s)) { struct tree*root; ans=0; root=create(); inorder(root); printf("\n"); aforder(root); printf("\n"); } return 0; }
数据结构实验之二叉树二:遍历二叉树
最新推荐文章于 2023-02-15 21:05:58 发布