我是靠谱客的博主 义气八宝粥,最近开发中收集的这篇文章主要介绍西北工业大学数据结构noj016计算二叉树叶子节点数目(耿6.14),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述
在这里插入图片描述
这道题思路比较简单,在创建二叉树时可以借鉴先序遍历的方法:
如果输入的是非空节点,那将这个值赋给节点,并且以这个节点为参数递归调用这个节点的左右节点,直到空节点;
如果输入的是#,那么直接给这个节点赋null;

话不多说上代码

#include<stdio.h>
#include <stdlib.h>
typedef struct Node
{
	char data;
	struct Node* LChild;
	struct Node* RChild;
}BiTNode,*BiTree;

//构建二叉树
int leaf = 0;//定义全局变量叶子节点的值

void CreateBiTree(BiTree* p)
{
    char c;
    c = getchar();
    if (c == '#') *p = NULL;//若输入#即为空节点
    else
    {
        *p = (BiTree)malloc(sizeof(BiTNode));
        (*p)->data = c;
        CreateBiTree(&((*p)->LChild));//按照前序遍历递归
        CreateBiTree(&((*p)->RChild));
    }
    
}
void Calculatingleaf(BiTree p)//计算叶子节点个数
{
    if (p != NULL)
    {
        Calculatingleaf(p->LChild);
        Calculatingleaf(p->RChild);
            if (p->LChild==NULL&&p->RChild==NULL)//叶子节点判断条件
                leaf++;
    }
}

int main()
{
    BiTree p;
    CreateBiTree(&p);
    Calculatingleaf(p);
    printf("%d", leaf);
    return 0;
}

最后

以上就是义气八宝粥为你收集整理的西北工业大学数据结构noj016计算二叉树叶子节点数目(耿6.14)的全部内容,希望文章能够帮你解决西北工业大学数据结构noj016计算二叉树叶子节点数目(耿6.14)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部