‹‹ 上一新主题 | 下一旧主题 ›› 回复 发布主题
bae196
发表于: 2017-6-1 15:31 引用 回复 只看该作者 1#
学生
头衔: usx16217
性别: 男
积分:80
阅读权限:70
帖子: 6
加入时间: 2017-2-27
最后登录: 2017-6-8

 #include<string>
#include<iostream>
#include<queue>
using namespace std;

struct BiTNode
{
 char data;
 BiTNode *lchild,*rchild;

 BiTNode(char ch,BiTNode *left,BiTNode *right)
 {
  data=ch;
  lchild=left;
  rchild=right;
 }
 BiTNode(){};
};
BiTNode*CreateBiTree(string &s)
{
 if(s[0]=='*')
 {
  s=s.substr(1);
  return NULL;
 }
 BiTNode *p=new BiTNode;
 p->data=s[0];
 s=s.substr(1);
 p->lchild=CreateBiTree(s);
 p->rchild=CreateBiTree(s);
 return p;
}
int f(BiTNode *T)
{
 int cnt=0;
 if(T==NULL) return 0;

 if(T->lchild!=NULL && T->rchild!=NULL) cnt=1;
 
 cnt+=f(T->lchild);
 cnt+=f(T->rchild);
 return cnt;
}
int main()
{
 string s;
 while(cin>>s)
 {
  
  BiTNode *root=CreateBiTree(s);
  cout<<f(root)<<endl;
 }
 return 0;
}

关键词: 解题 修改tag
请输入tag(多个tag之间用逗号分隔)
‹‹ 上一新主题 | 下一旧主题 ›› 回复 发布主题
快速回复主题
标题
内容