#include "stdafx.h"
#include "iostream"
#include "sstream"
using namespace std;
struct BtreeNode
{
int m_Value;
BtreeNode* m_left;
BtreeNode* m_right;
};
BtreeNode* createBtree()
{
int input;
BtreeNode* T;
cin.clear();//!!
cin.sync();
if (cin>>input)
{
T=new BtreeNode;
T->m_Value=input;
T->m_left=createBtree();
T->m_right=createBtree();
}
else T=NULL ;
return T;
}
void preOder(BtreeNode* T)
{
if (T!=NULL)
{
cout<<T->m_Value<<' ';
preOder(T->m_left);
preOder(T->m_right);
}
}
int getNodeNum(BtreeNode* T)
{
if(T==NULL) return 0;
else return getNodeNum(T->m_left)+getNodeNum(T->m_right)+1;
}
int getDepth(BtreeNode* T)
{
if(T==NULL) return 0;
int ldepth=getDepth(T->m_left);
int rdepth=getDepth(T->m_right);
return ldepth>rdepth?(ldepth+1):(rdepth+1);
}
int main()
{
BtreeNode* T;
T=createBtree();
preOder(T);
cout<<endl<<getNodeNum(T);
cout<<endl<<getDepth(T);
}
二叉树相关
最新推荐文章于 2024-10-02 11:53:30 发布