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
Post a Comment