#include<iostream.h>
#define type int typedef struct Node
{ type data;
struct Node *lchild;
struct Node *rchild;}*Bitree ;
Bitree createtree(type node[ ],int n)
{Bitree T;
if(node[n]==0||n>15) return NULL;
else
{T= new Node ;
T->data=node[n];
T->lchild=createtree(node,2*n);
T->rchild=createtree(node,2*n+1);
return T;}
}
type min=32767;
type max=0;
void PreOrder ( Bitree T )
{
if ( T != NULL ) {
if(T->data<min)
min=T->data;
if(T->data>max)
max=T->data;
PreOrder ( T->lchild );
PreOrder ( T->rchild );
}
}
void main()
{Bitree B;
int tree[16];
int i;
for(i=0;i<16;i++)
cin>>tree[i] ;//第一个输入为0
B=createtree(tree,1);
cout<<endl<<endl ;
cout<<"这是前序遍历的序列: " ;
PreOrder(B);/*此处调用上面的先序遍历函数,显示先序序列*/
cout<<"\n";
cout<<"最小值为:"<<min;
cout<<"最大值为:"<<max;
// 补充若干条语句完成算法
cout<<"\n" ;
}
#define type int typedef struct Node
{ type data;
struct Node *lchild;
struct Node *rchild;}*Bitree ;
Bitree createtree(type node[ ],int n)
{Bitree T;
if(node[n]==0||n>15) return NULL;
else
{T= new Node ;
T->data=node[n];
T->lchild=createtree(node,2*n);
T->rchild=createtree(node,2*n+1);
return T;}
}
type min=32767;
type max=0;
void PreOrder ( Bitree T )
{
if ( T != NULL ) {
if(T->data<min)
min=T->data;
if(T->data>max)
max=T->data;
PreOrder ( T->lchild );
PreOrder ( T->rchild );
}
}
void main()
{Bitree B;
int tree[16];
int i;
for(i=0;i<16;i++)
cin>>tree[i] ;//第一个输入为0
B=createtree(tree,1);
cout<<endl<<endl ;
cout<<"这是前序遍历的序列: " ;
PreOrder(B);/*此处调用上面的先序遍历函数,显示先序序列*/
cout<<"\n";
cout<<"最小值为:"<<min;
cout<<"最大值为:"<<max;
// 补充若干条语句完成算法
cout<<"\n" ;
}
