全球观点:统计二叉树的结点个数的算法数据结构(统计二叉树的结点个数)

时间:2023-07-04 15:06:07 来源:

1、一般情况下,涉及二叉树的很多操作都包含两个方面。

2、一方面,由于二叉树本身的递归定义,因此用递归的思想设计其很多操作是顺理成章的;另一方面,为了控制过程的深度和节约栈空间,我们有时也会考虑用非递归的思想设计很多关于二叉树的操作。

3、必须说明的是,非递归思想一般都需要额外栈或队列结构的支持。


(资料图片仅供参考)

4、下面来看一下关于统计二叉树结点个数的非递归算法设计: 将根结点插入队列。

5、 2、判断队列是否为空,非空执行第三步,否则执行第四步退出循环。

6、 3、从队列中取出一个结点,同时将取出结点的儿子结点插入队列。

7、此外,将计数器加1,再转到第二步。

8、 4、结束循环。

9、 注意:队列是先进先出的结构,与栈相反。

10、 如果你根据以上仍然不能写出完整的程序,下面的程序可作为你的参考。

11、 int size()//返回结点数函数 { linkqueuelist;//定义元素为node*型的队列 int sum=0; list.push(root); while(!list.empty()) { node* p=***.top();//保存即将出队的元素 list.pop();//队列首元素出队 if(p->lchild)//左儿子不为空,即进队 list.push(p->lchild); if(p->rchild)//同上 list.push(p->rchild); sum++;//计数器增1 } return sum; } 要想完全把握以上程序你必须对队列的结构有很好的理解。

12、此外,需要说明的是,计数器是以出队元素个数为指标进行计数的,而非进队元素。

13、这样可使程序简洁和容易理解得多。

本文就为大家分享到这里,希望小伙伴们会喜欢。

标签:

精彩推送

天天信息:抢抓人工智能发展重大机遇!长沙认定34个新一代人工智能开放创新平台

抢抓人工智能发展重大机遇,加快打造全球研发中心城市长沙认定34个新一

来源:2023.06.30

世界观速讯丨想多了六台嘉宾:巴黎想将罗德里戈加入姆巴佩交易中

直播吧6月30日讯前皇马门将帕卡-布约(PacoBuyo)今日在六台节目中爆料

来源:2023.06.30

酒鬼酒股东大会:阶段性的波折预示着下一个更好的状态即将出现|天天要闻

酒鬼酒28日在股东大会上表示,酒鬼酒对2023年下半年充满信心,信心来源

来源:2023.06.30

前官员透露:特朗普对伊万卡发表了令人震惊的涉性评论_全球视讯

据美国《新闻周刊》网站28日报道,美国前国土安全部幕僚长迈尔斯·泰勒

来源:2023.06.30

大学第一次班会内容流程 大学第一次班会流程

1、明确班会的目的---定主题--通过哪些环节来实现你可以从这个思路来考

来源:2023.06.30

美驻北约大使:成员国接近就乌克兰“入盟”达成一致

当地时间周四(6月29日),美国驻北约大使朱莉安·史密斯表示,北约成

来源:2023.06.30

因担保未及时履行信披,阳光城收到证监会福建监管局警示函-世界今日报

因担保未及时履行信披,阳光城收到证监会福建监管局警示函,信披,阳光城

来源:2023.06.30

全球即时看!百日宴红包背面怎么写祝福语_百日宴红包背面怎么写

百日宴的红包没有具体的格式和问候语。你只需要传达送礼人最美好的祝愿

来源:2023.06.30

韩媒曝光日官员给IAEA工作人员100余万欧元,外交部:日政府有责任作出解释_今头条

【环球时报-环球网报道记者邢晓婧】28日,外交部发言人毛宁主持例行记

来源:2023.06.30

新闻快讯

X 关闭

X 关闭

新闻快讯