From 78502ab58c3b17ba7e2d699fd6798c6d9878ee8a Mon Sep 17 00:00:00 2001 From: vinayakchachra Date: Thu, 13 Oct 2022 14:31:09 +0530 Subject: [PATCH 1/5] create Fibonacci numbers --- FibonacciNumbers.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 FibonacciNumbers.cpp diff --git a/FibonacciNumbers.cpp b/FibonacciNumbers.cpp new file mode 100644 index 0000000..ae14da9 --- /dev/null +++ b/FibonacciNumbers.cpp @@ -0,0 +1,30 @@ +#include +using namespace std; + +int fib(int n) +{ + int a = 0, b = 1, c, i; + if( n == 0) + return a; + for(i = 2; i <= n; i++) + { + c = a + b; + a = b; + b = c; + } + return b; +} + +int main() +{ + int n; + cin>>n; + cout << fib(n); + return 0; +} + + + /* + Time Complexity: O(n) +Extra Space: O(1) + */ \ No newline at end of file From 94f0d37f09de5b9a23aec8a6453a906f34ffbf9b Mon Sep 17 00:00:00 2001 From: vinayakchachra Date: Thu, 13 Oct 2022 14:39:53 +0530 Subject: [PATCH 2/5] added inorder traversal of a binary tree --- InorderTraversalBinaryTree.cpp | 86 ++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 InorderTraversalBinaryTree.cpp diff --git a/InorderTraversalBinaryTree.cpp b/InorderTraversalBinaryTree.cpp new file mode 100644 index 0000000..0233318 --- /dev/null +++ b/InorderTraversalBinaryTree.cpp @@ -0,0 +1,86 @@ +#include +#include + +using namespace std; + + + +struct Node { + int data; + Node* left; + Node* right; +}; + +Node* CreateNode(int data) +{ + Node* newNode = new Node(); + newNode->data = data; + newNode->left = newNode->right = NULL; + return newNode; +} + +/* Function to insert element in binary tree */ + +Node* InsertNode(Node* root, int data) +{ + // If the tree is empty, assign new node address to root + if (root == NULL) { + root = CreateNode(data); + return root; + } + + // Else, do level order traversal until we find an empty + // place, i.e. either left child or right child of some + // node is pointing to NULL. + queue q; + q.push(root); + + while (!q.empty()) { + Node* temp = q.front(); + q.pop(); + + if (temp->left != NULL) + q.push(temp->left); + else { + temp->left = CreateNode(data); + return root; + } + + if (temp->right != NULL) + q.push(temp->right); + else { + temp->right = CreateNode(data); + return root; + } + } +} + +/* Inorder traversal of a binary tree */ + +void inorder(Node* temp) +{ + if (temp == NULL) + return; + + inorder(temp->left); + cout << temp->data << ' '; + inorder(temp->right); +} + + + + +// Driver code +int main() +{ + Node* root = CreateNode(10); + root->left = CreateNode(11); + root->left->left = CreateNode(7); + root->right = CreateNode(9); + root->right->left = CreateNode(15); + root->right->right = CreateNode(8); + + inorder(root); + + return 0; +} \ No newline at end of file From 21dab48644a14e6bec451bccdc4f31cb9d199fee Mon Sep 17 00:00:00 2001 From: vinayakchachra Date: Thu, 13 Oct 2022 14:46:07 +0530 Subject: [PATCH 3/5] added Inorder traversal of a binary tree --- InorderTraversalBinaryTree.cpp | 86 ++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 InorderTraversalBinaryTree.cpp diff --git a/InorderTraversalBinaryTree.cpp b/InorderTraversalBinaryTree.cpp new file mode 100644 index 0000000..0233318 --- /dev/null +++ b/InorderTraversalBinaryTree.cpp @@ -0,0 +1,86 @@ +#include +#include + +using namespace std; + + + +struct Node { + int data; + Node* left; + Node* right; +}; + +Node* CreateNode(int data) +{ + Node* newNode = new Node(); + newNode->data = data; + newNode->left = newNode->right = NULL; + return newNode; +} + +/* Function to insert element in binary tree */ + +Node* InsertNode(Node* root, int data) +{ + // If the tree is empty, assign new node address to root + if (root == NULL) { + root = CreateNode(data); + return root; + } + + // Else, do level order traversal until we find an empty + // place, i.e. either left child or right child of some + // node is pointing to NULL. + queue q; + q.push(root); + + while (!q.empty()) { + Node* temp = q.front(); + q.pop(); + + if (temp->left != NULL) + q.push(temp->left); + else { + temp->left = CreateNode(data); + return root; + } + + if (temp->right != NULL) + q.push(temp->right); + else { + temp->right = CreateNode(data); + return root; + } + } +} + +/* Inorder traversal of a binary tree */ + +void inorder(Node* temp) +{ + if (temp == NULL) + return; + + inorder(temp->left); + cout << temp->data << ' '; + inorder(temp->right); +} + + + + +// Driver code +int main() +{ + Node* root = CreateNode(10); + root->left = CreateNode(11); + root->left->left = CreateNode(7); + root->right = CreateNode(9); + root->right->left = CreateNode(15); + root->right->right = CreateNode(8); + + inorder(root); + + return 0; +} \ No newline at end of file From c70bd48d3ef9f6c2491676f494f10b34d83d0d89 Mon Sep 17 00:00:00 2001 From: vinayakchachra Date: Thu, 13 Oct 2022 14:47:02 +0530 Subject: [PATCH 4/5] Delete FibonacciNumbers.cpp --- FibonacciNumbers.cpp | 30 ------------------------------ 1 file changed, 30 deletions(-) delete mode 100644 FibonacciNumbers.cpp diff --git a/FibonacciNumbers.cpp b/FibonacciNumbers.cpp deleted file mode 100644 index ae14da9..0000000 --- a/FibonacciNumbers.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include -using namespace std; - -int fib(int n) -{ - int a = 0, b = 1, c, i; - if( n == 0) - return a; - for(i = 2; i <= n; i++) - { - c = a + b; - a = b; - b = c; - } - return b; -} - -int main() -{ - int n; - cin>>n; - cout << fib(n); - return 0; -} - - - /* - Time Complexity: O(n) -Extra Space: O(1) - */ \ No newline at end of file From 4be1e7b32d2a92c74737581320badd05d729f6b4 Mon Sep 17 00:00:00 2001 From: vinayakchachra Date: Thu, 13 Oct 2022 14:50:00 +0530 Subject: [PATCH 5/5] added Preorder traversal of binary tree --- PreorderTraversalBinaryTree.cpp | 85 +++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 PreorderTraversalBinaryTree.cpp diff --git a/PreorderTraversalBinaryTree.cpp b/PreorderTraversalBinaryTree.cpp new file mode 100644 index 0000000..55909e7 --- /dev/null +++ b/PreorderTraversalBinaryTree.cpp @@ -0,0 +1,85 @@ +#include +#include + +using namespace std; + + + +struct Node { + int data; + Node* left; + Node* right; +}; + +Node* CreateNode(int data) +{ + Node* newNode = new Node(); + newNode->data = data; + newNode->left = newNode->right = NULL; + return newNode; +} + +/* Function to insert element in binary tree */ + +Node* InsertNode(Node* root, int data) +{ + // If the tree is empty, assign new node address to root + if (root == NULL) { + root = CreateNode(data); + return root; + } + + // Else, do level order traversal until we find an empty + // place, i.e. either left child or right child of some + // node is pointing to NULL. + queue q; + q.push(root); + + while (!q.empty()) { + Node* temp = q.front(); + q.pop(); + + if (temp->left != NULL) + q.push(temp->left); + else { + temp->left = CreateNode(data); + return root; + } + + if (temp->right != NULL) + q.push(temp->right); + else { + temp->right = CreateNode(data); + return root; + } + } +} + +/* Preorder traversal of a binary tree */ + +void preorder(Node* temp) +{ + if (temp == NULL) + return; + cout << temp->data << ' '; + preorder(temp->left); + preorder(temp->right); +} + + + + +// Driver code +int main() +{ + Node* root = CreateNode(10); + root->left = CreateNode(11); + root->left->left = CreateNode(7); + root->right = CreateNode(9); + root->right->left = CreateNode(15); + root->right->right = CreateNode(8); + + inorder(root); + + return 0; +} \ No newline at end of file