Pre-ordene la construcción de árboles y el recorrido de nivel

#include <iostream> 
#include <queue>
 usando el  espacio de nombres std;
#define ElemType char 
typedef struct BiTNode { 
    Datos ElemType; 
    struct BiTNode * lchild, * rchild; 
} BiTNode, * BiTree;
nulo CreateBiTree (BiTree & T) {
     char ch; cin >> ch;
    if (ch == ' # ' ) { 
        T = NULL; volver ; 
    } 
    T = nuevo BiTNode; 
    T -> datos = ch;
    CreateBiTree (T -> lchild); 
    CreateBiTree (T -> rchild); 
    
} 
void LevelOrder (BiTree T) { 
    queue <BiTree> q; 
    q.push (T); 
    BiTree t; 
    while (! q.empty ()) { 
        t = q.front (); 
        cout <<t-> datos << "  " ; 
        q.pop (); 
        if (t-> lchild) q.push (t-> lchild);
        if (t-> rchild) q.push (t-> rchild); 
    } 
    cout << endl; 
} 
anular pedido previo (BiTree T) {
    if (T) { 
        cout <<T-> data << "  " ; 
        Pedido anticipado (T -> lchild); 
        Pedido anticipado (T -> rchild); 
    } 
} 
int main () { 
    raíz de BiTree; 
    CreateBiTree (raíz); 
    LevelOrder (raíz); 
    Prepedido (raíz); 
    cout << endl;
    devuelve  0 ; 
}

 

Supongo que te gusta

Origin www.cnblogs.com/lyt888/p/12701906.html
Recomendado
Clasificación