根据如图创建二叉树:
先序遍历为: "A B C D E F G H"
中序遍历为: "C B E D F A G H"
后序遍历为: "C E F D B H G A"
代码如 下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h> // memset;
#include<iostream>
using namespace std;
typedef char ElemType;
typedef struct BtNode //创建二叉树
{
BtNode *leftchild;
BtNode *rightchild;
ElemType data;
}BtNode, *BinaryTree;
BtNode * Buynode() //申请结点
{
BtNode *s = ( BtNode*)malloc(sizeof(BtNode));
if(NULL == s) exit(1);
memset(s,0,sizeof(BtNode));
return s;
}
void Freenode(BtNode *p)
{
free(p);
}
void PreOrder(BtNode *p) //先序
{
if(p != NULL)
{
printf("%c ",p->data);
PreOrder(p->leftchild);
PreOrder(p->rightchild);
}
}
void InOrder(BtNode *p) //中序
{
if(p