计算机软件基础实验—二叉树求树高
#include <QCoreApplication>
#include <iostream>
#include <stdio.h>
using namespace std;
typedef struct jiedian{
int data;
jiedian * child_left,* child_right;
};
jiedian tr;
void Init_of_tr(void)
{
tr.data = 1;
tr.child_left = new jiedian;
tr.child_right = new jiedian;
tr.child_left->data = 2;
tr.child_left->child_left = new jiedian;
tr.child_left->child_right = new jiedian;
tr.child_right->data = 3;
tr.child_right->child_left = new jiedian;
tr.child_right->child_right = NULL;
tr.child_left->child_left->data = 4;
tr.child_left->child_left->child_left = NULL;
tr.child_left->child_left->child_right = NULL;
tr.child_left->child_right->data = 5;
tr.child_left->child_right->child_left = NULL;
tr.child_left->child_right->child_right = NULL;
tr.child_right->child_left->data = 6;
tr.child_right->child_left->child_left = NULL;
tr.child_right->child_left->child_right = NULL;
}
int maxj = 0;
void bianlishu(jiedian *date,int j)
{
std::cout<< date->data<<" "<<j<<endl;
if(j > maxj) maxj = j;
if(date->child_left != NULL) bianlishu(date->child_left,j+1);
if(date->child_right != NULL) bianlishu(date->child_right,j+1);
return;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Init_of_tr();
bianlishu(&tr,1);
cout<<maxj;
cout<<endl;
return a.exec();
}