示例#1
0
文件: MyTree.cpp 项目: styxschip/Note
//层序遍历
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;
    }
  }
}