TREE ORDER TRAVERSAL

 #include <iostream>

using namespace std;


class Tree {

    struct Node {

        string data; // Changed 'type' to 'string' to match the data being inserted

        Node* left;

        Node* right;

        

        Node(string d) : data(d), left(nullptr), right(nullptr) {}

    };


public:

    Node* root = nullptr;


    Tree() {

        Node* f = new Node("F");

        Node* g = new Node("G");

        Node* h = new Node("H");

        f->left = g;

        f->right = h;

        root = f; // Corrected 'Root' to 'root'

    }


    void preorder(Node* ptr) {

        if (ptr != nullptr) {

            cout << ptr->data << " ";

            preorder(ptr->left);

            preorder(ptr->right); // Corrected 'ptr-right' to 'ptr->right'

        }

    }


    void inorder(Node* ptr) {

        if (ptr != nullptr) {

            inorder(ptr->left);

            cout << ptr->data << " ";

            inorder(ptr->right); // Corrected 'ptr-right' to 'ptr->right'

        }

    }


    void postorder(Node* ptr) {

        if (ptr != nullptr) {

            postorder(ptr->left);

            postorder(ptr->right); // Corrected 'ptr-right' to 'ptr->right'

            cout << ptr->data << " ";

        }

    }

};


int main() {

    Tree obj;

    cout << "Preorder Traversal: ";

    obj.preorder(obj.root);

    cout << endl;

    

    cout << "Inorder Traversal: ";

    obj.inorder(obj.root);

    cout << endl;

    

    cout << "Postorder Traversal: ";

    obj.postorder(obj.root);

    cout << endl;


    return 0;

}


Comments

Popular posts from this blog

LIST ADT USING LINKED LIST

CLASSES CREATION

SORTING PROGRAM