题目简述
利用
先序递归遍历算法创建二叉树并
输出该二叉树的中序遍历序列
样例输入复制
AB##C## ABCD###EF##G### A##B##
样例输出复制
BAC DCBFEGA A
要点:二叉树的中序遍历输出算法
void InOrder(Tree *&tree) { if(tree!=NULL) { InOrder(tree->lchild);//不为空则指针后移 cout<<tree->data;//访问根结点 InOrder(tree->rchild); } }
要点:二叉树的后序遍历输出算法
void PostOrder(Tree *tree) { if(tree!=NULL) { PostOrder(tree->lchild); PostOrder(tree->rchild); cout<<tree->data; } }
完整代码:
以中序为例:
#include<iostream> #include<malloc.h> using namespace std; typedef struct node { char data; struct node *lchild; struct node *rchild; }Tree; void CreateTree(Tree *&tree) { char ch; cin>>ch; if(ch=='#') tree=NULL; else { tree=(Tree*)malloc(sizeof(Tree)); tree->data=ch; CreateTree(tree->lchild); CreateTree(tree->rchild); } } void InOrder(Tree *tree) { if(tree!=NULL) { InOrder(tree->lchild); cout<<tree->data; InOrder(tree->rchild); } } int main() { Tree *tree; CreateTree(tree); InOrder(tree); return 0; }