剑指offer——面试题32:从上到下打印二叉树
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 }