计算二叉树中结点的个数

article/2025/8/20 11:30:52
  • 思想:

递归实现

 图示为举例二叉树进行思路解释

二叉树中结点的个数:只要能计算出A左子树的个数+A右子树的个数+1

左子树个数:以B为结点的左子树个数+右子树个数+1

右子树个数:以C为结点的左子树个数+右子树个数+1

 . . . .(每颗子树都能再细分拆为子树)

直到待访问的子树为空树

  • 代码实现:

typedef struct node
{char value;//当前节点值struct node* left;//指向当前节点左孩子指针struct node* right;//指向当前节点右孩子指针
}Node;typedef struct tree
{Node* root;
}Tree;void InitTree(Tree* t)
{t->root = NULL;
}//先序遍历创建二叉树
Node* Create(const char*& str) //因为要修改字符串就加了引用&
{if (*str == '*')return NULL;else{Node* newnode = (Node*)malloc(sizeof(Node));if (newnode != NULL){newnode->value = *str;newnode->left = Create(++str);newnode->right = Create(++str);return newnode;}}
}//计算以root为根的二叉树的结点个数
int Size(Node* root)
{if (root == NULL)return 0;elsereturn Size(root->left) + Size(root->right) + 1;
}
int main()
{Tree t;InitTree(&t);const char* str = "ABDG**HI****CE*J**F**";t.root = Create(str);printf("size=%d\n",Size(t.root));
}

                创建的二叉树如下图所示,创建思路:创建二叉树

  • 运行结果:

 


http://chatgpt.dhexx.cn/article/m9M4gU2r.shtml

相关文章

(图解)单链表删除结点值为x的结点算法

目录 一、非递归的算法 第一种算法思路如下: 第二种算法思路如下: 二、递归的算法 一、非递归的算法 第一种算法思路如下: 先判断链表L是否为空,空链表退出程序;用p利用while循环从头到尾扫描单链表,p…

单链表的基本操作-插入结点、删除结点、新建链表、查找结点位置

** C语言新手小白的学习笔记-------------目前持续更新中 ** 本人90后电气工程及其自动化大学生,大二开始接触C语言,写过前端,Python,但是都不精通,通过许多认识后明白了自身的许多不足,因此,…

武汉轰趴团建年会的疯狂玩法活动不一样的经历

又是一年的历程与工作,今年来一点新花样,来吧,让我们一起快乐冲向前,空气中满是不一样的欢声笑语,让我们一起感受不一样的年会趴,让我们一起去快乐的游玩吧。武汉轰趴团建年会的疯狂玩法活动不一样的经历 感…

天猫双11全球狂欢节的诞生,源于对快乐的分享

时光荏苒,天猫双11全球狂欢节,如今已经迈入了第十个年头。 相信有不少读者小伙伴都知道,双11最早其实源于中国的“光棍节”。那么这样一个原本应该是单身狗们黯然神伤的日子,究竟是如何演变成一场让无数消费者和商家都激情澎湃的购…

生成模型太强大?篡改与伪造检测越来越需要了!这篇最新综述不容错过

关注公众号,发现CV技术之美 最近一段时间,以扩散模型为代表的生成模型越来越能逼真地生成图像和视频,一方面是一群人的狂欢,这是AI的进步,另一方面却是另一群人的担忧,这是AI的危险。 AI技术可以造福人类&a…

你越来越孤独的3个原因

昨天看到一句话是这样说的:“交朋友都很难了,还交男朋友。” 我觉得有趣的同时,又发现好像真的是这样,身边好像很久没有出现过新的人了,也很少愿意去参加各种各样的聚会,也没有精力再去认识一些陌生人。 …

超1.58亿人将“血拼”,超级星期六购物节即将到来

超1.58亿人将“血拼”!美国超级星期六购物节即将到来!亚马逊出手整治“远仓近送”! 据美国零售联合会的年度消费者调查结果显示,在今年圣诞节前的最后一个星期六(即超级星期六),将有1.58亿人发生…

复旦女神陈果:孤独是一个人的狂欢,在你寂寞时请关注这些公众号充实自己

复旦大学哲学系博士陈果,对孤独做出了一种完美的诠释。她说:“狂欢是一群人的寂寞,孤独是一个人的狂欢。孤独不求外物,反求诸己。” 在你寂寞之时,请关注这些公众号。他们能给你提供有生命力的阅读,让你在有…

1024 程序员节狂欢盛会,等了一年终于来了!

风起岳麓,扶摇而上,约战湘江,谁与争锋!以“算力新时代开源创未来”为主题的第三届 2022 长沙中国 1024 程序员节于 10 月 22 日-24 日强势来袭!数位院士领衔、中国根技术掌门人以及海外先进开源技术掌门人齐聚&#xf…

夜夜狂欢的派对

奇怪,外国人的语气或思维总因为隔膜的缘故觉得很幽默,是那种“自己不笑却让所有人笑”的幽默。比如早上抛公发给我看的帖子中的几段: “北京有个夜夜狂欢的派对,一定很多人都去参加。因为在北京很多人每天看上去都很疲倦。我不知…

一群搞社区的人

最近Mixlab无界社区参与的电台节目有点多,上次是城市花样精,这次是#社区特辑。推荐给大家: opus 号外号外!好公社“嗲声嗲气”播客和CSDC服务设计社区“月月谈”电台合作啦! 什么?听起来这个合作来得太突然…

一群人的战斗

一、Bug 来了 一个平静的周日午后,正悠闲地在公园里遛娃。突然来了一条消息,打开企业微信仔细看了下,竟大吃一惊:客户成功在群内反馈了 Android A/B Testing SDK 的一个 crash,需要紧急解决。 得知问题后我立刻和客…

一个“后浪”的狂欢,一群中年人的孤单!

点击“技术领导力”关注∆ 每天早上8:30推送 作者| Mr.K 编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) “孤单,是一个人的狂欢,狂欢,是一群人的孤单。” 《叶子》,阿桑,词/曲:陈晓娟 01 …

计算机术语hook的理解

Hooks就像一些外来的钩子,在源代码之间钩取(窃听)一些信息,当它捕捉到自己感兴趣的事发生,就拦截下来,让自己的代码执行一下,处理一下这个信息,然后再放出去继续之前的进程。这样就可…

计算机mips是什么,在计算机术语中,什么叫MIPS

2006-08-18 在计算机术语中,什么叫VGA 显卡所处理的信息最终都要输出到显示器上,显卡的输出接口就是电脑与显示器之间的桥梁,它负责向显示器输出相应的图像信号。CRT显示器因为设计制造上的原因,只能接受模拟信号输入,这就需要显卡…

堆 (计算机术语)

2019独角兽企业重金招聘Python工程师标准>>> 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值&#xff1b…

计算机术语翻译(Term.)及缩写整理(Abbr.)

Table of Contents 🔮 计算机术语翻译(Term.)及缩写整理(Abbr.)🗡️ DOI, URI, URL, URN🗡️ prompt🗡️ as-is, to-be🗡️ WYSIWYG🗡️ socket🗡…

计算机术语宏是什么意思,宏(计算机术语)

什幺是宏 所谓宏,就是一些命令组织在一起,作为一个单独命令完成一个特定任务。Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”。Word使用宏语言Visual Basic将…