#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define OK 1;
#define ERROR 0;
//#define OVERFLOW -1;
typedef int Status;
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T){
char data;
scanf("%c",&data);
if(data=='0')
{T=NULL;return;}
else{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode)))) //exit(ERROR);
T->data=data;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
Status PrintElement(TElemType data){
printf("%c",data);
return OK;
}
Status PreOrderTraverse(BiTree T,Status(* Visit)(TElemType data)){
if(T){
if(Visit(T->data))
if(PreOrderTraverse(T->lchild,Visit))
if(PreOrderTraverse(T->rchild,Visit))
return OK;
return ERROR;
}
else return OK;
}
int main(){
BiTree T;
printf("Enter:\n");
CreateBiTree(T);
printf("xianxu:");
PreOrderTraverse(T,PrintElement);
printf("\n");
}
二叉树先序遍历
最新推荐文章于 2024-07-28 17:42:24 发布