算法
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct TNode
{
char data;
struct TNode *lchild,*rchild;
}BT,*BiTree;
void creatTree(BiTree &T)
{ char ch;
cin>>ch;
if(ch!='@')
{
T=new BT;
T->data=ch;
creatTree(T->lchild);
creatTree(T->rchild);
}
else T=NULL;
}
int n=0;
void find_leave(BiTree T)
{
if(T!=NULL)
{
if(T->lchild==NULL)
{
n+=1;
}
find_leave(T->lchild);
find_leave(T->rchild);
}
}
int main()
{
BiTree T;
creatTree(T);
find_leave(T);
printf("%d",n);
return 0;
}
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct TNode
{
char data;
struct TNode *lchild,*rchild;
}BT,*BiTree;
void creatTree(BiTree &T)
{ char ch;
cin>>ch;
if(ch!='@')
{
T=new BT;
T->data=ch;
creatTree(T->lchild);
creatTree(T->rchild);
}
else T=NULL;
}
void pre_path(BiTree T)
{
if(T!=NULL)
{
pre_path(T->lchild);
cout<<T->data;
pre_path(T->rchild);
}
}
int main()
{
BiTree T;
creatTree(T);
pre_path(T);
return 0;
}
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct TNode
{
char data;
struct TNode *lchild,*rchild;
}BT,*BiTree;
void creatTree(BiTree &T)
{ char ch;
cin>>ch;
if(ch!='@')
{
T=new BT;
T->data=ch;
creatTree(T->lchild);
creatTree(T->rchild);
}
else T=NULL;
}
void pre_path(BiTree T)
{
if(T!=NULL)
{
pre_path(T->lchild);
cout<<T->data;
pre_path(T->rchild);
}
}
int main()
{
BiTree T;
creatTree(T);
pre_path(T);
return 0;
}
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
#define MAX 1000
typedef struct TNode
{
char data;
struct TNode *lchild,*rchild;
}BT,*BiTree;
void creatTree(BiTree &T)
{ char ch;
cin>>ch;
if(ch!='@')
{
T=new BT;
T->data=ch;
creatTree(T->lchild);
creatTree(T->rchild);
}
else T=NULL;
}
void level_path(BiTree T)
{
BiTree s[MAX];
int front,rear;
front=rear=0;
BiTree p;
p=T;
if(T!=NULL)
{ rear++;
s[rear]=p;
while(front!=rear)
{ front+=1;
p=s[front];
printf("%c",p->data);
if(p->lchild!=NULL)
{
s[++rear]=p->lchild;
}
if(p->rchild!=NULL)
{
s[++rear]=p->rchild;
}
}
}
}
int main()
{
BiTree T;
creatTree(T);
level_path(T);
return 0;
}
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct TNode
{
char data;
struct TNode *lchild,*rchild;
}BT,*BiTree;
void creatTree(BiTree &T)
{ char ch;
cin>>ch;
if(ch!='@')
{
T=new BT;
T->data=ch;
creatTree(T->lchild);
creatTree(T->rchild);
}
else T=NULL;
}
int n=0;
void find_leave(BiTree T)
{
if(T!=NULL)
{
if(T->lchild==NULL&&T->rchild==NULL)
{
n+=1;
}
find_leave(T->lchild);
find_leave(T->rchild);
}
}
int main()
{
BiTree T;
creatTree(T);
find_leave(T);
printf("%d",n);
return 0;
}
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct TNode
{
char data;
struct TNode *lchild,*rchild;
}BT,*BiTree;
void creatTree(BiTree &T)
{ char ch;
cin>>ch;
if(ch!='@')
{
T=new BT;
T->data=ch;
creatTree(T->lchild);
creatTree(T->rchild);
}
else T=NULL;
}
void pre_path(BiTree T)
{
if(T!=NULL)
{
pre_path(T->lchild);
pre_path(T->rchild);
cout<<T->data;
}
}
int main()
{
BiTree T;
creatTree(T);
pre_path(T);
return 0;
}
//树的高度
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct TNode
{
char data;
struct TNode *lchild,*rchild;
}BT,*BiTree;
void creatTree(BiTree &T)
{ char ch;
cin>>ch;
if(ch!='@')
{
T=new BT;
T->data=ch;
creatTree(T->lchild);
creatTree(T->rchild);
}
else T=NULL;
}
int depth(BiTree T)
{ int lh,rh;
if(T)
{
rh=depth(T->rchild);
lh=depth(T->lchild);
if(lh>rh) return lh+1;
else return rh+1;
}
}
int main()
{
int h;
BiTree T;
creatTree(T);
h=depth(T);
printf("%d",h);
return 0;
}
填空