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实现)
深度优先遍历与广度优先遍历的区别