#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef int TelemType;
typedef struct BiTNode
{
TelemType data;
struct BiTNode *lchild,*rchild;
} BiTNode,*BiTree;
int tmax=-999;
void creatBiTree(BiTree &T)
{
TelemType num;
cin>>num;
if(num==-1)
T=NULL;
else
{
T=(BiTNode*)malloc(sizeof(BiTNode));
T->data=num;
creatBiTree(T->lchild);
creatBiTree(T->rchild);
}
}
void PreTraversal(BiTree T)
{
if (T != NULL)
{
printf("%d ",T->data);
PreTraversal(T->lchild);
PreTraversal(T->rchild);
}
}
int getMaxValue(BiTree T)
{
if(T==NULL)
return 0;
if(T!=NULL)
{
if(T->data>tmax)
tmax=T->data;
getMaxValue(T->lchild);
getMaxValue(T->rchild);
}
return tmax;
}
int main()
{
BiTree T;
int maxData;
cout<<"请输入数据元素:";
creatBiTree(T);
printf("前序遍历:");
PreTraversal(T);
maxData=getMaxValue(T);
printf("\n最大值:%d",maxData);
return 0;
}
|