zoukankan      html  css  js  c++  java
  • 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印

    题目:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从
    左往右的顺序打印。 
    例如输入 

    / \  
    6 10 
    /\ /\  
    5 7 9 11 
    输出8 6 10 5 7 9 11。

    思路:广度优先遍历

    #include <iostream>
    #include <deque>
    using namespace std;
    
    struct BTree
    {
        BTree* pLeft;
        BTree* pRight;
        int value;
    };
    void InsertBTree(BTree* &pRoot, int val)
    {
        if (!pRoot)
        {
            pRoot=new BTree;
            pRoot->pLeft=NULL;
            pRoot->pRight=NULL;
            pRoot->value=val;
        }
        else
        {
            if (val>pRoot->value)
            {
                InsertBTree(pRoot->pRight,val);
            }
            if (val<pRoot->value)
            {
                InsertBTree(pRoot->pLeft,val);
            }
            if (val==pRoot->value)
            {
                cout<<"repeated insertion."<<endl;
            }
        }
    }
    void VisitByLevel(BTree* pRoot)
    {
        if (!pRoot)
        {
            return;
        }
        deque<BTree*> BTDeque;
        BTDeque.push_back(pRoot);
        while (BTDeque.size())
        {
            BTree* p=BTDeque.front();
            cout<<p->value<<"  ";
            BTDeque.pop_front();
            if (p->pLeft)
            {
                BTDeque.push_back(p->pLeft);
            }
            if (p->pRight)
            {
                BTDeque.push_back(p->pRight);
            }
        }
    }
    void main()
    {
        BTree* pRoot=NULL;
        InsertBTree(pRoot,8);
        InsertBTree(pRoot,6);
        InsertBTree(pRoot,10);
        InsertBTree(pRoot,5);
        InsertBTree(pRoot,7);
        InsertBTree(pRoot,9);
        InsertBTree(pRoot,11);
        VisitByLevel(pRoot);
    }
  • 相关阅读:
    sql之Replace
    虚拟主机的IIS连接数和访问流量限制各是什么
    SQL COUNT() 函数
    bzoj3163 Eden的新背包问题
    THUPC2018 城市地铁规划
    HNOI 2017 礼物
    NOI 模拟赛
    PKUSC2018 Slay The Spire
    NOI 模拟赛
    NOI 模拟赛
  • 原文地址:https://www.cnblogs.com/lscheng/p/2842961.html
Copyright © 2011-2022 走看看