From 2cbb2b7e340d3d4634a6d30d1ae94db86a46281d Mon Sep 17 00:00:00 2001 From: akashdas-0111 <61954560+akashdas-0111@users.noreply.github.com> Date: Tue, 5 Oct 2021 16:40:21 +0530 Subject: [PATCH] Created traversal.cpp all types of tree traversal --- traversal.cpp | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 traversal.cpp diff --git a/traversal.cpp b/traversal.cpp new file mode 100644 index 0000000..c546890 --- /dev/null +++ b/traversal.cpp @@ -0,0 +1,133 @@ +#include + +using namespace std; + + + + +struct Node { + + int data; + + struct Node *left, *right; + + Node(int data) + + { + + this->data = data; + + left = right = NULL; + + } +}; + + + + +void printPostorder(struct Node* node) +{ + + if (node == NULL) + + return; + + + + + printPostorder(node->left); + + + + + printPostorder(node->right); + + + + + cout << node->data << " "; +} + + + +void printInorder(struct Node* node) +{ + + if (node == NULL) + + return; + + + + + printInorder(node->left); + + + + + cout << node->data << " "; + + + + + printInorder(node->right); +} + + + +void printPreorder(struct Node* node) +{ + + if (node == NULL) + + return; + + + + + cout << node->data << " "; + + + + + printPreorder(node->left); + + + + + printPreorder(node->right); +} + + + +int main() +{ + + struct Node* root = new Node(1); + + root->left = new Node(2); + + root->right = new Node(3); + + root->left->left = new Node(4); + + root->left->right = new Node(5); + + + cout << "\nPreorder traversal of binary tree is \n"; + + printPreorder(root); + + + cout << "\nInorder traversal of binary tree is \n"; + + printInorder(root); + + + cout << "\nPostorder traversal of binary tree is \n"; + + printPostorder(root); + + + return 0; +}