c_cpp 广度优先遍历的.cpp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 广度优先遍历的.cpp相关的知识,希望对你有一定的参考价值。



//返回深度
int BreadthFirstSearch(TreeNode* pRoot, vector<int> &vecResult, int &iDepth)
{
	if(NULL == pRoot)
	{
		iDepth = 0;
		return 0;
	}
	queue<TreeNode*> queTreeNode;
	queTreeNode.push(pRoot);
	iDepth = 1;
	TreeNode* temp ;
	int iSize;
	while(!queTreeNode.empty() )
	{
		iSize = queTreeNode.size();
		for(int i = 0; i < iSize; i++)
		{
			temp = queTreeNode.front();
			vecResult.push_back( temp->val );
			if(NULL != temp->left)
			{
				queTreeNode.push( temp->left );
			}
			if(NULL != temp->right)
			{
				queTreeNode.push( temp->right );
			}
			queTreeNode.pop();
		}
		iDepth++;
	}
	return iDepth;
}


//不需要求深度
void BreadthFirstSearch(TreeNode* pRoot, vector<int> &vecResult)
{
	if(NULL == pRoot)
	{
		cout << "NULL == pRoot" << endl;
		return;
	}
	queue<TreeNode*> queTreeNode;
	queTreeNode.push(pRoot);
	TreeNode* temp;
	while(!queTreeNode.empty() )
	{
		temp = queTreeNode.front();
		vecResult.push_back( temp->val );
		if(NULL != temp->left)
		{
			queTreeNode.push( temp->left );
		}
		if(NULL != temp->right)
		{
			queTreeNode.push( temp->right );
		}
		queTreeNode.pop();
	}
}

以上是关于c_cpp 广度优先遍历的.cpp的主要内容,如果未能解决你的问题,请参考以下文章

广度优先搜索遍历图

题目1457:非常可乐(广度优先遍历BFS)

c语言图的遍历,邻接表存储,深度,广度优先遍历

图的深度/广度优先遍历C语言程序

多级树的深度优先遍历与广度优先遍历(Java实现)

深度优先遍历与广度优先遍历的区别