标题:麻烦哪位好心的大虾帮我看下这程序,求双胞胎和求独生子女的函数为什么用不 ...
只看楼主
sky351732466
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-11-8
 问题点数:0 回复次数:0 
麻烦哪位好心的大虾帮我看下这程序,求双胞胎和求独生子女的函数为什么用不了呢?

#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define OVERFLOW -1
typedef int status;
typedef char TElemType;

//二叉树的二叉链表存储表示
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//按先序序列建立二叉树
status createbitree(BiTree &T){
TElemType ch;
ch=getchar();
if(ch=='#')T=NULL;
else {
if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) exit(OVERFLOW);
T->data=ch;
createbitree(T->lchild);
createbitree(T->rchild);
}
return OK;
}
//先序遍历二叉树
status preordertraverse(BiTree &T){
if(T){
printf("%c",T->data);
preordertraverse(T->lchild);
preordertraverse(T->rchild);
}
return OK;
}
//求二叉树中结点个数
status countnode(BiTree &T){
if(!T) return 0;
else return (1+countnode(T->lchild)+countnode(T->rchild));
}
//求独生子女数目
status countonlychild(BiTree &T){
if(!T || ((!T->lchild) && (!T->rchild)) || ((T->lchild) && (T->rchild))) return 0;
else return (1+countonlychild(T->lchild)+countonlychild(T->rchild));
}
//求双胞胎对数
status countchildren (BiTree &T){
if(!T||(!T->lchild||!T->rchild)) return 0;
else return (1+countchildren (T->lchild)+countchildren (T->rchild));
}


void main(){
BiTree T;
createbitree(T);
preordertraverse(T);
printf("\n%d\n",countnode(T));
printf("%d\n",countonlychild(T));
printf("%d\n",countchildren (T));
}



先谢了!

搜索更多相关主题的帖子: 独生子女 双胞胎 二叉树 函数 
2005-11-08 12:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-33075-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.399214 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved