- 浏览: 735131 次
- 性别:
- 来自: 嘉兴
文章分类
- 全部博客 (386)
- Struts1.1 (2)
- Database (18)
- Core Java (15)
- Log4j (4)
- SSH (0)
- Dao (1)
- Architecture Design (1)
- References (2)
- Eclipse&MyEclipse (10)
- Hibernate (7)
- Spring (8)
- JavaMail (1)
- Data Structure And Algorithm (48)
- Struts 2 (2)
- SSI (1)
- SSL (2)
- JSTL (1)
- EJB3 (2)
- NET (2)
- XML (2)
- Components (2)
- Ant (3)
- Multi Thread (1)
- Performance Monitoring (1)
- Web Server (17)
- Oracle (1)
- jQuery (8)
- Regular Expression (1)
- Weblogic (1)
- Exception (1)
- Security (2)
- File Manipulation (1)
- JavaScript (12)
- JVM (2)
- HTML&DIV&CSS (4)
- Android (10)
- Beyond GFW (0)
- Business (0)
- SVN (6)
- 虚拟主机 (1)
- Virtual Host (3)
- My mentality (5)
- OS (15)
- ISPMP (3)
- Magento (5)
- Jsoup&HttpClient (7)
- LINUX (9)
- Database Design (0)
- Power Designer (1)
- TaobaoOpenPlatform (2)
- C/C++ (3)
- Maven (11)
- Quartz (1)
- Load Balance (1)
- Zabbix (4)
- Product&Business (1)
- Pay Interface (1)
- Tomcat (2)
- Redis (1)
- 集群 (1)
- Session (1)
- 共享Session (1)
- Jedis (1)
- jenkins (1)
- 持续集成 (1)
- Web前端 (1)
最新评论
-
aqq331325797:
特意注册账号上来说一句。牛逼!
swagger2.2.2 与 spring cloud feign冲突 -
KitGavinx:
跨顶级域名怎么保持sessionid一致?
Tomcat7集群共享Session 基于redis进行统一管理 -
jaychang:
dujianqiao 写道HI ,能否给一个完整的demo 啊 ...
淘宝订单同步方案 - 丢单终结者 -
GGGGeek:
找了一会儿,感觉mybatis应该没有这种操作,直到发现博主的 ...
mybatis collection list string -
dujianqiao:
HI ,能否给一个完整的demo 啊 ?
淘宝订单同步方案 - 丢单终结者
#include<iostream> using namespace std; typedef struct BiTreeNode{ char data; BiTreeNode *lChild; BiTreeNode *rChild; }BiTreeNode; int leafCount; //递归建立二叉树 void InitialBiTree(BiTreeNode *&node) { char data; cout<<"请输入数据,输入#结束"<<endl; cin>>data; if(data!='#') { node=(BiTreeNode*)malloc(sizeof(BiTreeNode)); if(node==NULL)return; node->data=data; InitialBiTree(node->lChild); InitialBiTree(node->rChild); } else { node=NULL; } } //先序遍历 void TransFirstBiTree(BiTreeNode *&root)//注意使用*&root,^-^搞得有点郁闷反正就是这样root才可以保住 { if(root==NULL)return; else { cout<<root->data<<" "; TransFirstBiTree(root->lChild); TransFirstBiTree(root->rChild); } } //叶结点基数 void CountLeafNode(BiTreeNode *&root) { if(root!=NULL) { if(root->lChild==NULL&&root->rChild==NULL) leafCount++; CountLeafNode(root->lChild); CountLeafNode(root->rChild); } else { return ; } } //递归求二叉树的深度,max=hl>hr?hl:hr;max+=1;(递归定义) int PostTreeDepth(BiTreeNode *&root) { int hl,hr,max; if(root!=NULL) { hl=PostTreeDepth(root->lChild); hr=PostTreeDepth(root->rChild); max=hl>hr?hl:hr; return (max+1); } else return 0; } int main() { char cmd; do{ leafCount=0; BiTreeNode *root=NULL; InitialBiTree(root); cout<<"先序遍历\n"; TransFirstBiTree(root); cout<<"\n"; cout<<"\n";CountLeafNode(root); cout<<"叶结点数目为\n"; cout<<leafCount<<endl; cout<<"树的深度为\n"; cout<<PostTreeDepth(root)<<endl; cout<<"继续吗?y or n\n"; cin>>cmd; }while(cmd=='y'); return 0; }
发表评论
-
【排序算法系列】希尔排序
2015-12-05 16:14 841希尔排序的概述: a[0]...a[n-1 ... -
归并排序
2015-06-20 15:28 897public class MergeSort { pub ... -
插入排序
2015-06-20 15:27 485/** * 插入排序1 容易理解 * * ... -
有序线性链表归并
2013-10-05 11:30 1562#include<stdio.h> #incl ... -
Trie树 应用 Phone List
2012-06-15 11:21 1180Phone List 时间限 ... -
Trie树 单词查找树 键树(JAVA版附分析说明)
2012-06-13 10:27 5179来源于英文“retrieval”. ... -
Trie树 单词查找树 键树
2012-06-12 08:59 1156转自:http://zh.wik ... -
数字金额转中文大写金额
2010-11-26 15:09 1428/** * 用来将数字金额转化成中文大写的金额 ... -
汉诺塔递归算法
2010-11-25 08:17 1354import java.util.Scanner; /* ... -
约瑟夫出圈
2010-11-24 20:45 1101#include<iostream> #incl ... -
SmartHashSet只是为了解释HashSet的原理
2010-07-26 11:11 1361写该类的目的只是为了 ... -
二叉树中序遍历非递归算法
2010-06-29 23:17 1723#include<iostream> usi ... -
二叉树的创建
2010-06-29 23:15 1135#include<iostream> usi ... -
哈弗曼树建立与哈弗曼编码
2010-06-29 23:12 1250#include<iostream> #de ... -
二叉排序树转双向链表(要求无任何新增节点)
2010-06-29 23:07 2493题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双 ... -
线索二叉树中插入结点
2010-06-29 23:05 1892#include<iostream> usi ... -
二叉排序树的递归与非递归查找
2010-06-29 22:58 2309#include<iostream> usi ... -
二叉树中序线索化及查找某一结点的前驱,后继结点
2010-06-29 22:54 2684#include<iostream> usi ... -
十字链表定义创建查找
2010-06-29 22:44 1322#include<iostream> #defi ... -
稀疏矩阵转置
2010-06-29 22:39 1663#include<iostream> #defi ...
相关推荐
### 二叉树的叶子结点数及深度 在计算机科学领域,二叉树是一种重要的数据结构,广泛应用于算法设计、数据库索引等场景。本文将详细介绍如何在C++中编写程序来计算二叉树的叶子结点数及深度。 #### 一、二叉树的...
在“叶子结点数及深度.cpp”文件中,你应该能看到这些功能是如何实现并测试的。这为初学者提供了很好的实践机会,帮助他们理解和掌握二叉树的概念以及C语言的递归编程。 总的来说,这个C语言练习涵盖了二叉树的基本...
在上述的`TreeDepth()`函数中,已经通过递归调用间接地统计了二叉树的结点数。每次访问到一个节点时,都会将全局变量`NodeNum`增加1。因此,当整个树被遍历完毕后,`NodeNum`的值即为二叉树的结点总数。 #### 五、...
二叉树的基本运算还包括计算结点数,这可以通过递归或非递归方式实现,通过遍历树的每一个节点并累加计数。复制二叉树则需要创建一个新的二叉树,其结构和原树完全相同,这通常通过深度优先搜索或广度优先搜索来完成...
* 本文还实现了计算二叉树的结点数、深度和叶子结点数的方法。 * 结点数计算:在numofnode()函数中,使用递归方法来计算二叉树的结点数。如果当前节点为空,则返回0,否则,返回左子树和右子树的结点数之和加1。 *...
本文主要通过python以非递归形式实现二叉树构造、前序遍历,中序遍历,后序遍历,层次遍历以及求二叉树的深度及叶子结点数。其他非递归形式的遍历,想必大多人应该都很清楚,就不再声明。如果你用C或者C++或者其他...
在这个树子系统中,我们关注的是如何创建二叉树以及对它的各种操作,如先序遍历、中序遍历、后序遍历,以及计算叶子节点数、节点总数和树的深度。 **二叉树的创建**: 创建二叉树通常涉及到动态内存分配和节点的...
本实验主要实现了二叉树的各种操作,包括求二叉树深度、叶子结点数、1度结点数、2度结点数、交换二叉树左右子树、找二叉树中序遍历最后一个结点等。 二叉树深度 在计算机科学中,二叉树深度是指从根节点到最深叶子...
本报告基于二叉树的遍历方法,旨在通过递归和非递归两种方法创建一棵二叉树,并对其进行先序遍历、中序遍历、后序遍历及层次遍历,并求出该二叉树的深度和叶子结点数。同时,报告还实现了查找功能,能够输入一个结点...
### 数据结构实验报告——...- **计数操作**:函数`TreeDepth()`不仅计算了二叉树的深度,还统计了节点总数和叶子节点的数量。 通过以上实验步骤和程序实现,学生可以全面掌握二叉树的相关理论知识和实际应用能力。
定义二叉树的存储结构,采用非递归算法实现二叉树的二叉树的先序、中序、后序和按层遍历。并实现求二叉树的深度、求总结点数、求叶子结点、查找某个结点等操作(可以采用递归)。
3. 完全二叉树的叶子节点数n0与2度节点数n2的关系是n0 = n2 + 1。 完全二叉树是所有层都尽可能填满的二叉树,除了最后一层。若二叉树有5000个节点,那么根据性质3,其叶子节点的个数为2500。 二叉树的存储方式有两...
本文档中,我们将讨论二叉树的各种算法,包括插入结点、前序、中序、后序遍历、层次遍历、查找关键字、交换左右子树、求二叉树深度和叶子结点数等。 1. 插入新结点 插入新结点是二叉树算法的基本操作。我们可以...
//实现二叉树叶子结点数的求值 Status DeleteBST(BSTree &T,ElemType e); //实现树的节点的删除 int TreeHeight(BSTree T); //实现树的高度的求值 int Max(int a,int b); //实现两个数中求最大值 Position ...
在本实验中,我们需要统计二叉树中的结点数。我们可以使用递归方法或非递归方法实现。下面是使用递归方法实现的示例代码: ```c int countNodes(Node *root) { if (root == NULL) { return 0; } return 1 + ...
先分别求得左右子树中各叶子结点个数,再计算出两者之和即为二叉树的叶子结点数。 四、调试结果 通过调试,程序可以正确地构建二叉树、进行前序遍历、中序遍历、后序遍历、计算二叉树的深度和叶子结点个数。 五、...
2. 编写一个求二叉树叶子结点数的算法。 实验主要设备及软件: 1. PC 机 2. Turbo C 2.0 或 Visual C++ 实验流程: (一)头文件(header.h) 在 header.h 文件中,我们定义了二叉树的结构体 BiTree,包括节点的...
- **叶子结点数**:递归方法时,根节点无左子树且无右子树即为叶子结点,加上左右子树的叶子结点数。 - **深度**:从根节点到最远叶子结点的最长路径长度。 - **宽度**:在一棵树的最大层的节点数量。 4. **节点...
- **递归方法**:对于任意非空二叉树T,如果当前节点的左子树和右子树都为空,则该节点是叶子节点。递归地计算左子树和右子树中的叶子节点数量。 - **代码实现**: ```cpp void BiLeafCount(BiTree T, int &count) {...
二叉树的建立,遍历算法(递归与非递归,基于对列或堆栈)统计二叉树中叶子结点的个数,统计二叉树中结点的总数,求二叉树的深度(后序遍历),求二叉树的宽度(具有结点数最多的层上的结点数,已知二叉树中序遍历和...