第十周项目3-用二叉树遍历思想解决问题(1)&(2)

来源:互联网 发布:python import sqlite3 编辑:程序博客网 时间:2024/06/13 13:08

问题及代码:

(1)计算二叉树节点个数

#include <stdio.h>#include<malloc.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("二叉树中所有的叶子节点是: ");    DispLeaf(b);    printf("\n");    DestroyBTNode(b);    return 0;}


(2)输出所有叶子节点

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("二叉树节点个数: %d\n", Nodes(b));    DestroyBTNode(b);    return 0;}


 

运行结果:

(1)

(2)

知识点总结:

利用二叉树算法库解决实际问题,两个函数中均用到递归调用,知识点比较简单。

心得体会:

在敲代码中慢慢的开始理解了递归的意思,课后多实践才能加深理解!

 

0 0
原创粉丝点击