//层序遍历 void MyTree::LayerTraverse(TreeNode* pNode) { LinkQueue<TreeNode*> queue; TreeNode* pCur = pNode; queue.EnQueue(pCur); while(true) { pCur = queue.DeQueue(); printf("%d[%d] ", pCur->m_Data, pCur->m_nDepth); //压入左子树 if(pCur->m_pLeft) { queue.EnQueue(pCur->m_pLeft); } //压入右子树 if(pCur->m_pRight) { queue.EnQueue(pCur->m_pRight); } if(queue.IsEmpty()) { break; } } }