内容建立二叉树
先根序遍历
#include <stdlib.h>
#include <iostream>
using namespace std;
#define OK 1
#define ERROR 0
typedef struct BiNode {
int data;
BiNode *lchild,*rchild;
}BiNode,*BiTree;
bool creatTree(BiTree &T) {
int data;
cin >> data;
if(data == 0 ) T = NULL;
else {
if(!(T = (BiTree)malloc(sizeof(BiNode))))
return ERROR;
T ->data = data;
creatTree(T ->lchild);
creatTree(T ->rchild);
}
return OK;
}
bool visitTree(BiTree T) {
cout << T ->data << ",";
return OK;
}
bool orderTree(BiTree T) {
if(T) {
if(visitTree(T)) {
if(orderTree(T ->lchild)) {
if(orderTree(T ->rchild)) return OK;
}
}
}
return OK;
}
bool main() {
BiTree T;
creatTree(T);
orderTree(T);
free(T);
T ->lchild = NULL;
T ->rchild = NULL;
while(OK);
return OK;
}
执行结果图: