zoukankan      html  css  js  c++  java
  • 创建二叉树求叶子节点个数

    求二叉树叶子结点的个数,注意创建方法!

    //求二叉树中叶子结点的个数
    
    #include<iostream>
    #define N 63
    
    using namespace std;
    
    char str[] = "ab#d##c#e##";  //先建立根节点,然后再左右结点建立
    int i = -1;
    
    typedef struct node
    {
        struct node *leftChild;
        struct node *rightChild;
        char data;
    }BiTreeNode, *BiTree;
    
    //生成一个结点
    BiTreeNode *createNode(int i)
    {
        BiTreeNode * q = new BiTreeNode;
        q->leftChild = NULL;
        q->rightChild = NULL;
        q->data = i;
        return q;
    }
    
    BiTree createBiTree1()
    {
        BiTreeNode *p[N] = { NULL };
        int i;
        for (i = 0; i < N; i++)
            p[i] = createNode(i + 1);
    
        // 把结点连接成树
        for (i = 0; i < N / 2; i++)
        {
            p[i]->leftChild = p[i * 2 + 1];
            p[i]->rightChild = p[i * 2 + 2];
        }
    
        return p[0];
    }
    
    void createBiTree2(BiTree &T)
    {
        i++;
        char c;
        if (str[i] && '#' == (c = str[i]))
            T = NULL;
        else
        {
            T = new BiTreeNode;
            T->data = c;
            createBiTree2(T->leftChild);
            createBiTree2(T->rightChild);
        }
    }
    
    int getLeafNode(BiTree T)
    {
        if (NULL == T)
            return 0;
    
        if (NULL == T->leftChild && NULL == T->rightChild)
            return 1;
    
        return getLeafNode(T->leftChild) + getLeafNode(T->rightChild);
    }
    
    int main()
    {
        BiTree T1;
        T1 = createBiTree1();
        cout << getLeafNode(T1) << endl;
    
        BiTree T2;
        createBiTree2(T2);
        cout << getLeafNode(T2) << endl;
    
        return 0;
    }
  • 相关阅读:
    iOS开发之Xcode8兼容适配iOS 10资料整理笔记
    C#流概述
    C#回调实现的一般过程
    ASP.Net MVC的学习
    RAID基本知识
    Infiniband基本知识
    [转]开源实时视频码流分析软件:VideoEye
    [转]高分一号的落后与特色
    [转]MVC,MVP 和 MVVM 的图示
    图文助你打开MS SQL Serever的ldf和mdf文件
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/5691114.html
Copyright © 2011-2022 走看看