zoukankan      html  css  js  c++  java
  • 从上往下打印二叉树

    要求:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。

    算法思想:每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直到队列中所有的结点都被打印出来为止。

    1 struct BinaryTreeNode //节点
    2 {
    3     int m_nValue;
    4     BinaryTreeNode* m_pLeft;
    5     BinaryTreeNode* m_pRight;
    6 };
     1 //////////////从上往下打印二叉树/////////////////////////
     2 void PrintFromTopToBottom(BinaryTreeNode* pTreeRoot)
     3 {
     4     if (pTreeRoot == NULL)
     5     {
     6         return;
     7     }
     8     list<BinaryTreeNode*> NodeData;
     9     NodeData.push_back(pTreeRoot);
    10     BinaryTreeNode* pTemp = 0 ;
    11     while (!NodeData.empty())
    12     {
    13         pTemp = NodeData.front();
    14         NodeData.pop_front();
    15         cout<<pTemp->m_nValue<<endl;
    16         if (pTemp->m_pLeft)
    17         {
    18             NodeData.push_back(pTemp->m_pLeft);
    19         }
    20         if (pTemp->m_pRight)
    21         {
    22             NodeData.push_back(pTemp->m_pRight);
    23         }    
    24     }
    25     
    26 }
  • 相关阅读:
    网络协议
    窗口TOPMOST属性设置失败
    自绘之----对话框
    图书推荐
    MFC自绘之WM_ERASEBKGND
    批处理获取当前路径
    checkBox 自绘
    第四章:基于TCP套接字编程(三)
    第四章:基于TCP套接字编程(二)
    第四章:基于TCP套接字编程(一)
  • 原文地址:https://www.cnblogs.com/csxcode/p/3707833.html
Copyright © 2011-2022 走看看