void BFS(BinaryTreeNode* pRoot)
{
if(pRoot==nullptr)
{
cout<<"empty binary tree!"<<endl;
return;
}
queue<BinaryTreeNode*>pNode;
pNode.push(pRoot);
while(!pNode.empty())
{
BinaryTreeNode* pFront=pNode.front();
pNode.pop();
cout<<pFront->m_Value<<' ';
if(pFront->m_pLeft!=nullptr)
pNode.push(pFront->m_pLeft);
if(pFront->m_pRight!=nullptr)
pNode.push(pFront->m_pRight);
}
cout<<endl;
}
函数
1 #include"BinaryTree.h"
2
3 void Test()
4 {
5 BFS(nullptr);
6 BinaryTreeNode* pNode1=CreateBinaryTreeNode(8);
7 BFS(pNode1);
8 BinaryTreeNode* pNode2=CreateBinaryTreeNode(6);
9 ConnectTreeNodes(pNode1,pNode2,nullptr);
10 BFS(pNode1);
11 ConnectTreeNodes(pNode1,nullptr,pNode2);
12 BFS(pNode1);
13 BinaryTreeNode* pNode3=CreateBinaryTreeNode(10);
14 ConnectTreeNodes(pNode1,pNode2,pNode3);
15 BFS(pNode1);
16 }
17
18 int main()
19 {
20 Test();
21 return 0;
22 }