////////////////////////////////////////////////// ///////////////////////////////////
// the binary print subject from the top 23
void PrintTreeFromTopToBottom(BinarySeachTreeNode<int>* pRoot) { if (NULL == pRoot) { return; } queue<BinarySeachTreeNode<int>*> stQueue; stQueue.push(pRoot); while (!stQueue.empty()) { BinarySeachTreeNode<int>* pTmpNode = stQueue.front(); stQueue.pop(); // 打印数据 printf("%2d -> ", pTmpNode->m_stValue); if (pTmpNode->m_pLeftNode) { stQueue.push(pTmpNode->m_pLeftNode); } if (pTmpNode->m_pRightNode) { stQueue.push(pTmpNode->m_pRightNode); } } putchar(10); } void PrintTreeFromTopToBottomTestFunc() { cout << "\n\n --------------- PrintTreeFromTopToBottomTestFunc Start -------------->" << endl; int aiArray[] = {8, 6, 10, 5, 7, 9, 11, 12}; int iLen = sizeof(aiArray) / sizeof(int); TRAVERSAL_ARRAY(aiArray, iLen); // 1.建立一个二叉树 CBinarySearchTree<int>* pTree = new CBinarySearchTree<int>(); if (NULL == pTree) { return; } for (int i = 0; i < iLen; i++) { ptree -> the Insert (aiArray [I]); } ptree -> Traversal (); ptree -> Traversal (TRAVERSAL_TYPE_RECUR_PRE_ORDER); // 2. hierarchical binary tree traversal (breadth first traversal) const BinarySeachTreeNode < int > * = pTree- PROOT> GetTreeRootNode (); cout << " non-recursive hierarchy traversal: " ; PrintTreeFromTopToBottom (const_cast <BinarySeachTreeNode < int > *> (PROOT)); // 3. release the memory SAVE_DELETE (ptree); cout << "\n\n --------------- PrintTreeFromTopToBottomTestFunc Start -------------->" << endl; }