|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<bits/stdc++.h>
using namespace std;
typedef struct Node{
int deep;
char c;
Node* left;
Node* right;
}*TreeNode,treenode;
TreeNode creattree(TreeNode t,int depth){
char ch;
cin>>ch;
//cout<<"ch="<<ch<<endl;
if(ch=='#'){
t = NULL;
}
else{
t = new treenode;
t->c = ch;
t->deep = depth;
//cout<<t->c<<endl;
t->left=NULL;
t->right=NULL;
t->left=creattree(t->left,depth+1);
t->right =creattree(t->right,depth+1);
// cout<<"创建成功"<<endl;
}
return t;
}
void prosee(TreeNode t){
if(t==NULL){
//cout<<"over"<<endl;
return;
}
else{
// cout<<t->c<<" depth="<<t->deep<<endl;
//system("pause");
prosee(t->left);
prosee(t->right);
}
}
void mindepth(TreeNode t,int i[],int& c){
if(t->left==NULL&&t->right==NULL){
i[c]=t->deep;
c++;
return;
}
else{
mindepth(t->left,i,c);
mindepth(t->right,i,c);
}
}
int main(){
TreeNode t;
t = NULL;
int depth=1,m=0,n=0,i[1000]={0},min=1000;
t=creattree(t,depth);//用void可以吗?明明是指针
//prosee(t);
mindepth(t,i,n);
for(m=0;m<n;m++){
if(min>=i[m]&&i[m]>0){
min = i[m];
}
}
cout<<min;
free(t);
return 0;
}
//ab##cd##e## |
|