#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=new 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);
}
}
//找出二叉树中所有结点数据域的最大值
//1 2 3 4 -1 -1 -1 5 -1 -1 6 7 -1 -1 -1
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;
}
找出二叉树中所有结点数据域最大值
最新推荐文章于 2023-11-18 22:42:33 发布