zoukankan      html  css  js  c++  java
  • 层序遍历二叉树

    题目描述:创建一棵二叉树,然后层序遍历输出节点

    算法实现:

     1 #include<iostream>
     2 #include<deque>
     3 using namespace std;
     4 
     5 typedef struct BiTreeNode{
     6     int data;
     7     struct BiTreeNode *left;
     8     struct BiTreeNode *right;
     9 }BiTreeNode;
    10 
    11 void Print(BiTreeNode *pHead){
    12     if(pHead == NULL){
    13         return;
    14     }
    15     
    16     deque<BiTreeNode *> node;
    17     node.push_back(pHead);
    18     
    19     while(node.size()){
    20         BiTreeNode *pNode = node.front();
    21         node.pop_front();
    22         
    23         cout<<pNode->data<<' ';
    24         
    25         if(pNode->left){
    26             node.push_back(pNode->left);
    27         } 
    28         if(pNode->right){
    29             node.push_back(pNode->right);
    30         }
    31     }
    32 } 
    33 
    34 //创建二叉树,使用前序创建二叉树,遇到-1表示节点为空
    35 BiTreeNode* createTree()
    36 {
    37     int item;
    38     BiTreeNode *t ;
    39     cin>>item;
    40     
    41     if(item != -1)
    42     {
    43         BiTreeNode *pTmpNode = new BiTreeNode();
    44         
    45         t = pTmpNode;
    46         pTmpNode->data = item;
    47         
    48         t->left = createTree();
    49         t->right = createTree();
    50         return t;
    51     } 
    52     else
    53     {
    54         t = NULL;
    55         return t;
    56     }
    57 }
    58 
    59 int main(){
    60     BiTreeNode *p = createTree();
    61     Print(p);
    62     return 0;
    63 }

    建立的二叉树:

    输出结果:

    参考书籍:

    《剑指offer》

  • 相关阅读:
    数组字符串
    return语句
    函数
    js流程控制语句
    js数据类型
    精进:如何成为一个很厉害的人---书摘(转)
    生成随机的数字和字母组合
    modelAndView重定向到外网
    mysql. 替换数据库中某个字段
    java中对于时间的处理
  • 原文地址:https://www.cnblogs.com/dormant/p/5374767.html
Copyright © 2011-2022 走看看