第九周-项目三-用二叉树遍历思想解决问题

来源:互联网 发布:python 矩阵处理 编辑:程序博客网 时间:2024/06/05 06:04
/*             * Copyright (c) 2017,烟台大学计算机学院             * All right reserved.             * 文件名称:main.cpp            * 作者:马明祥            * 完成日期:2017年11月16日             * 版本号:v1.0             *             * 问题描述:用二叉树遍历思想解决问题     * 输入描述:标准函数输入             * 程序输出:标准函数输出        */      
(1)计算二叉树节点个数:
#include <stdio.h>#include "btree.h"int Nodes(BTNode *b){    if (b==NULL)        return 0;    else        return Nodes(b->lchild)+Nodes(b->rchild)+1;}int main(){    BTNode *b;    CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");    printf("二叉树节点个数: %d\n", Nodes(b));    DestroyBTNode(b);    return 0;}

运行结果:

(2)输出所有叶子节点; 

#include <stdio.h>#include "btree.h"void DispLeaf(BTNode *b){    if (b!=NULL)    {        if (b->lchild==NULL && b->rchild==NULL)            printf("%c ",b->data);        else        {            DispLeaf(b->lchild);            DispLeaf(b->rchild);        }    }}int main(){    BTNode *b;    CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))");    printf("二叉树中所有的叶子节点是: ");    DispLeaf(b);    printf("\n");    DestroyBTNode(b);    return 0;}



阅读全文
0 0
原创粉丝点击