给定一个二叉树,获取该二叉树的宽度深度

原创 2015年07月06日 16:23:00

题目:

Description  

         给定一个二叉树,获取该二叉树的宽度深度。
Prototype
         int GetBiNodeInfo(BiNode &head, unsigned int *pulWidth, unsigned int *pulHeight)
Input Param 
         head   需要获取深度的二叉树头结点
Output Param 
         pulWidth   宽度
         pulHeight  高度
Return Value
         0          成功

         1          失败或其他异常

分析:使用二叉树的层序遍历,使用队列很简单的解决问题

代码如下:

int GetBiNodeInfo(BiNode &head, unsigned int *pulWidth, unsigned int *pulHeight)
{
	/*在这里实现功能*/
	if(&head==NULL)
		return -1;
	*pulWidth=0;
	*pulHeight=0;
	queue<BiNode*> biStack;
	biStack.push(&head);
	while(!biStack.empty()){
		++(*pulHeight);
		if(biStack.size()>*pulWidth)
			*pulWidth=biStack.size();
		int i=biStack.size();
		while(i>0){
			BiNode * temp=biStack.front();
			biStack.pop();
			if(temp->left!=NULL)
				biStack.push(temp->left);
			if(temp->right!=NULL)
				biStack.push(temp->right);
			i--;
		}
	}
	printf("pulWidth=%d\n pulHeight=%d\n",*pulWidth,*pulHeight);
	return 0;
}


LeetCode:寻找二叉树的最小深度

原题:Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the sh...
  • VP_19951105
  • VP_19951105
  • 2017年03月23日 09:54
  • 895

数据结构--二叉树--获得二叉树的深度和根(顺序结构)

//二叉树的顺序存储表示 #define MAX_TREE_SIZE 100//二叉树最大节点数 typedef TElemType SqBiTree[MAX_TREE_SIZE]//0号单元存储...
  • wangrunmin
  • wangrunmin
  • 2012年08月05日 08:07
  • 2574

二叉树(创建、遍历、树的最大深度和最小深度)

我们利用链表来实现一个二叉树,其实一般的二叉树用处并不大,后面会引申出二叉搜索树,红黑树,堆等。。再此我们只需要掌握如何对二叉树进行遍历,首先我们用前序遍历的方法创建一个二叉树,然后研究其遍历方法(递...
  • Gouhailiang
  • Gouhailiang
  • 2016年11月08日 21:29
  • 1024

得到二叉树的深度

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T...
  • fyifei0558
  • fyifei0558
  • 2015年01月26日 16:38
  • 421

求二叉树的深度代码实现

用递归的方案实现: /* 求二叉树的深度 */ int getDepthBiTree(BITREENODE* T) { int lDepth = 0, rDepth = 0; if...
  • u010889616
  • u010889616
  • 2015年10月30日 23:40
  • 1969

求解二叉树所有节点的深度

如何求解一个二叉树所有节点的深度? 常见的算法是采用递归求解二叉树的最大深度,算法如下: int maxDepth(node *p) { if (!p) retur...
  • liutgnukernel
  • liutgnukernel
  • 2016年10月05日 21:13
  • 1701

C++算法之 求二叉树的节点个数、深度、四种遍历方法

//节点的数据结构 class BTree { public: int m_nValue; BTree* m_nLeft; BTree* m_nRight; ...
  • djb100316878
  • djb100316878
  • 2015年01月04日 11:42
  • 16140

二叉树深度的算法

转载于:http://blog.pfan.cn/edwardguo/52433.html 题目:二叉树用二叉链表表示,编写求二叉树深度的算法。 答案是: int height(Bitree T)...
  • xxg3053
  • xxg3053
  • 2012年02月15日 11:35
  • 23512

求二叉树的深度和宽度

1 二叉树的深度题目: 输入一个二叉树的根节点,求该树的深度。从根节点到叶子节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度包含的节点数为为树的深度,即二叉树节点的层数。二叉树的节...
  • K346K346
  • K346K346
  • 2016年04月06日 17:41
  • 20810

二叉树基本算法,递归非递归遍历以及求高度、宽度等

二叉树基本算法,遍历以及求高度、宽度等路径 转自Powered by: C++博客   Copyright © 天一程 //二叉树的相关算法,《数据结构习题与解析》7.3 //算...
  • Youyou_0826
  • Youyou_0826
  • 2017年04月20日 20:18
  • 1606
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:给定一个二叉树,获取该二叉树的宽度深度
举报原因:
原因补充:

(最多只允许输入30个字)