Suche…


Einführung

Das Besuchen eines Knotens eines binären Baums in einer bestimmten Reihenfolge wird als Durchquerung bezeichnet.

Vorbestellung, Nachbestellung und Nachbestellung eines binären Baums

Betrachten Sie den binären Baum:

Geben Sie hier die Bildbeschreibung ein

Durchlauf vor der Bestellung (Wurzel) durchläuft den Knoten, dann den linken Unterbaum des Knotens und dann den rechten Unterbaum des Knotens.

Die Vorbestellung des obigen Baums lautet also:

1 2 4 5 3 6 7

Durchlauf in der Reihenfolge (Wurzel) durchläuft den linken Teilbaum des Knotens, dann den Knoten und dann den rechten Teilbaum des Knotens.

Der Durchlauf in der Reihenfolge des obigen Baums ist also:

4 2 5 1 6 3 7

Durchlauf nach der Reihenfolge (Wurzel) durchläuft den linken Teilbaum des Knotens, dann den rechten Teilbaum und dann den Knoten.

Die Nachbestellung des obigen Baums lautet also:

4 5 2 6 7 3 1

Level Order Traversal - Implementierung

Zum Beispiel, wenn der angegebene Baum ist:

Geben Sie hier die Bildbeschreibung ein

Level Order Traversal wird sein

1 2 3 4 5 6 7

Knotendaten werden Stufe für Stufe gedruckt.

Code:

#include<iostream>
#include<queue>
#include<malloc.h>

using namespace std;

struct node{
    
    int data;
    node *left;
    node *right;
};

void levelOrder(struct node *root){
    
        if(root == NULL)    return;
        
        queue<node *> Q;
        Q.push(root);
        
        while(!Q.empty()){
        struct    node* curr = Q.front();
            cout<< curr->data <<" ";
            if(curr->left != NULL) Q.push(curr-> left);
                if(curr->right != NULL) Q.push(curr-> right);
                
                Q.pop();
            
            
        }
}
struct node* newNode(int data)
{
    struct node* node = (struct node*)
                        malloc(sizeof(struct node));
    node->data = data;
    node->left = NULL;
    node->right = NULL;
 
    return(node);
}

int main(){
    
    struct node *root = newNode(1);
    root->left        = newNode(2);
    root->right       = newNode(3);
    root->left->left  = newNode(4);
    root->left->right = newNode(5);
    root->right->left  = newNode(6);
    root->right->right = newNode(7);
 
 
    printf("Level Order traversal of binary tree is \n");
    levelOrder(root);
    
    return 0;
    
    
}

Die Warteschlangendatenstruktur wird verwendet, um das obige Ziel zu erreichen.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow