六十三吖 2017-06-30 12:36 采纳率: 0%
浏览 1149

c++代码树检测叶子结点

代码如下,求哪位大佬解释下为啥求出的sum值是10呢?按道理应该是3啊,哪里错了,求哪位大佬帮我改下

 #define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

typedef struct BiTNode
{
    char data;
    struct BiTNode *lchild, *rchild;
}BiTree;

void CreateTree(BiTree *node)
{
    node[0].data = 'A';
    node[0].lchild = &node[1];
    node[0].rchild = &node[2];

    node[1].data = 'B';
    node[1].lchild = &node[3];
    node[1].rchild = &node[4];

    node[2].data = 'C';
    node[2].lchild = NULL;
    node[2].rchild = NULL;

    node[3].data = 'D';
    node[3].lchild = NULL;
    node[3].rchild = NULL;

    node[4].data = 'E';
    node[4].lchild = NULL;
    node[4].rchild = NULL;
}

void PreCircle(BiTree *node)
{
    if (node != NULL)
    {

        PreCircle((*node).lchild);
        printf("%c", (*node).data);
        PreCircle((*node).rchild);
    }
}

int sum=0;
int CountTree(BiTree *node)
{
    if (node != NULL)
    {
        if ((*node).lchild == NULL && (*node).rchild == NULL)
        {
            sum++;
        }
        if (CountTree((*node).lchild) != NULL)
        {
            CountTree((*node).lchild);
        }

        if (CountTree((*node).rchild) != NULL)
        {
            CountTree((*node).rchild);
        }
    }

}

void main()
{

    BiTree node[5];
    CreateTree(node);
    CountTree(node);
    printf("%d", sum);


    printf("\n");
    system("pause");


}
  • 写回答

2条回答 默认 最新

  • engineer_ZHQ 2017-06-30 16:12
    关注

    代码没毛病 确实是3

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条