实现代码:
#include <iostream>
#include <stdlib.h>
#define maxSize 1000
using namespace std;
typedef struct BTNode{
int data,r;
struct BTNode *lchild,*rchild;
}BTNode;
//二叉树样式
// 6
// 3 8
//2 4 7 9
//创建二叉树
bool Create(BTNode *&T, char x){
if(T==NULL){
T = (BTNode*)malloc(sizeof(BTNode));
T->data = x;
T->lchild=T->rchild=NULL;//生成结点
return true;
}
if(x<T->data)
Create(T->lchild,x);//构造左子树
else
Create(T->rchild,x);//构造右子树
}
//先序遍历二叉树
void preOrder(BTNode *p){
if(p!=NULL){
cout<<p->data;
preOrder(p->lchild);
preOrder(p->rchild);
}
}
//反层次遍历,自下而上,从右至左
void antiLevel(BTNode *p){
BTNode *q[maxSize]={0};
BTNode *s[maxSize]={0};
int i,j,a,b;
i=j=a=b=0;
q[j++]=p;
while(i!=j){
//cout<<q[i]->data;//正常的层次遍历
if(q[i]->lchild!=NULL){
q[j++]=q[i]->lc