标签:pTmpNode 题目 cout 23 pRoot pTree 二叉树 stQueue
/////////////////////////////////////////////////////////////////////////////////////
// 5. 题目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->Insert(aiArray[i]); } pTree->Traversal(); pTree->Traversal(TRAVERSAL_TYPE_RECUR_PRE_ORDER); // 2.二叉树层次遍历(广度优先遍历) const BinarySeachTreeNode<int>* pRoot = pTree->GetTreeRootNode(); cout << "非递归 层次遍历: "; PrintTreeFromTopToBottom(const_cast<BinarySeachTreeNode<int>*>(pRoot)); // 3.释放内存 SAVE_DELETE(pTree); cout << "\n\n --------------- PrintTreeFromTopToBottomTestFunc Start -------------->" << endl; }
标签:pTmpNode,题目,cout,23,pRoot,pTree,二叉树,stQueue 来源: https://www.cnblogs.com/yzdai/p/11258728.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。