一.知道先序,中序求后序。
用先序知道根节点,通过中序知道根节点的左子右子。通过一次次递归,推出最后一个。
#include <iostream>
#include <cstring>
#define MAX 50+3
using namespace std;
typedef struct tree
{
char data;//数据
struct tree *lson;//左孩子
struct tree *rson;//右孩子
}tree; //要查找的元素 查找的地方 数组的长度
int Search_Num(char num,char *array,int len)
{
for(int i=0; i<len; i++)
if(array[i] == num)
return i;
//return -1;//没有找到
} //前序遍历 中序遍历 中序数组长度
tree *suan(char *front,char *center,int len)
{
if(len <= 0)
return NULL;
tree *temp = new tree;
temp->data = *front;
int index = Search_Num(*front,center,len);
temp->lson = suan(front+1,center,index);
temp->rson = suan(front+index+1,center+index+1,len-index-1);
return temp;
}
void houxu(tree *root)//后序遍历
{
if