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 }
  • 相关阅读:
    go module配置
    beego conf配置文件
    go string类型的特性
    go语言简单介绍,增强了解
    beego项目和go项目 打包部署到linux
    第一个go程序
    linux下vim编辑器查找 关键字
    配置ngnix下的虚拟主机
    PHP中文无乱码截取
    #1040
  • 原文地址:https://www.cnblogs.com/csxcode/p/3707833.html
Copyright © 2011-2022 走看看