首页 新闻 赞助 找找看

二叉树存储族谱问题

0
悬赏园豆:5 [待解决问题]

假设一个家族成员如右图所示(其中父母为一个结点),每对父母最多只有两个孩子:

1.以先根遍历序列输入家族中所有成员信息,包括:姓名和年龄(只存储父亲姓名和年龄) ,成员个数为10人;

2.统计家族没有孩子的成员个数。

3.查找某一个家庭成员,输出他的年龄。

 

 

#include <iostream>   
using namespace std;     
typedef int datatype;

typedef struct node *pointer;
struct node{
 char data;
    datatype age;
 pointer lchild,rchild;
};
typedef pointer bitree;

bitree pre_creat(){         //先根遍历生成二叉树
 bitree t;
 char ch;
 cout<<"请输入要添加的家庭成员名字:"<<endl;
 cin>>ch;
 if(ch!='#')            
 cout<<"请输入年龄:"<<endl;
 int a;
 cin>>a;
 if(ch=='@')return NULL;
 {
  t=new node;
     t->data=ch;
     t->age=a;
     t->lchild=pre_creat();
  t->rchild=pre_creat();
 }
 return t;
}

int leaf(bitree t){          //求叶子结点数             
    int l,r;
    if(t==NULL) return 0;
 if(t->lchild==NULL&&t->rchild==NULL)
  return 1;
 l=leaf(t->lchild);
 r=leaf(t->rchild);
 return l+r;
}

pointer search(bitree t,char x){ 
 bitree p;//p存放值为x的结点的指针
 if(t==NULL) return NULL;
 if(t->data==x) return t;
 (p=search (t->lchild,x))||(p=search (t->rchild,x));
 return p;
}

int main()
{
 int x;
 bitree T;T=pre_creat();
 cout<<"请输入要寻找的家庭成员的名字:"<<endl;
 int leaf(bitree t);
 cin>>x;
 pointer search(bitree t,char x);
 return 0;
}

 

程序没错,但调用出了问题,求各位帮忙看看。

Mr小区的主页 Mr小区 | 初学一级 | 园豆:61
提问于:2012-10-31 07:54
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册