From f3be4d60eaa203412a3a2851988fb23caa5da728 Mon Sep 17 00:00:00 2001 From: Akshat Jain Date: Mon, 4 Mar 2024 22:05:21 +0530 Subject: [PATCH] Adding code files till Lecture 71 --- .../1-longestBloodline.cpp | 150 +++++++++++++++ .../1A-longestBloodline.cpp | 157 ++++++++++++++++ Lecture065-Trees Questions P3/2-LCAofBT.cpp | 168 +++++++++++++++++ Lecture065-Trees Questions P3/2-LCAofBT.exe | Bin 0 -> 444057 bytes Lecture065-Trees Questions P3/2op-Lca.cpp | 160 ++++++++++++++++ .../3-SlouKsumPath.cpp | 172 +++++++++++++++++ .../3-SlowKSumPath.cpp | 136 ++++++++++++++ .../3-fastKsumPath.cpp | 132 +++++++++++++ .../4-KthAncesstor.cpp | 125 +++++++++++++ .../4-SC-1KthAncesstor.cpp | 160 ++++++++++++++++ .../4-luvKthAncesstor.cpp | 149 +++++++++++++++ .../5-MaxNonAdjacentSum.cpp | 130 +++++++++++++ .../1-constructBT_InandPre.cpp | 79 ++++++++ .../2-constructBT_InandPost.cpp | 69 +++++++ Lecture067-Burn A Tree/Hard.cpp | 175 ++++++++++++++++++ .../1-InorderWithiotRecc.cpp | 71 +++++++ .../2-MorrisT.cpp | 88 +++++++++ .../3-FlattenBT.cpp | 150 +++++++++++++++ .../3A-RecursiveFlattenBT.cpp | 148 +++++++++++++++ Lecture069 - BST/1-Implementation.cpp | 139 ++++++++++++++ Lecture069 - BST/1-Implementation.exe | Bin 0 -> 170404 bytes Lecture069 - BST/2-search.cpp | 37 ++++ Lecture070-BST Questions/1-validateBST.cpp | 35 ++++ .../2-KthSmallesrElmt.cpp | 42 +++++ Lecture070-BST Questions/3-Lca.cpp | 38 ++++ Lecture070-BST Questions/4-Presucc.cpp | 65 +++++++ Lecture071- BST 3/1-TwoSum.cpp | 41 ++++ Lecture071- BST 3/2-FlattenABst.cpp | 0 Lecture071- BST 3/3-NormalToBalanced.cpp | 0 Lecture071- BST 3/4-BSTfromPreorder.cpp | 48 +++++ 30 files changed, 2864 insertions(+) create mode 100644 Lecture065-Trees Questions P3/1-longestBloodline.cpp create mode 100644 Lecture065-Trees Questions P3/1A-longestBloodline.cpp create mode 100644 Lecture065-Trees Questions P3/2-LCAofBT.cpp create mode 100644 Lecture065-Trees Questions P3/2-LCAofBT.exe create mode 100644 Lecture065-Trees Questions P3/2op-Lca.cpp create mode 100644 Lecture065-Trees Questions P3/3-SlouKsumPath.cpp create mode 100644 Lecture065-Trees Questions P3/3-SlowKSumPath.cpp create mode 100644 Lecture065-Trees Questions P3/3-fastKsumPath.cpp create mode 100644 Lecture065-Trees Questions P3/4-KthAncesstor.cpp create mode 100644 Lecture065-Trees Questions P3/4-SC-1KthAncesstor.cpp create mode 100644 Lecture065-Trees Questions P3/4-luvKthAncesstor.cpp create mode 100644 Lecture065-Trees Questions P3/5-MaxNonAdjacentSum.cpp create mode 100644 Lecture066-Construct A BT/1-constructBT_InandPre.cpp create mode 100644 Lecture066-Construct A BT/2-constructBT_InandPost.cpp create mode 100644 Lecture067-Burn A Tree/Hard.cpp create mode 100644 Lecture068-Morris Traversal & Flatten Tree/1-InorderWithiotRecc.cpp create mode 100644 Lecture068-Morris Traversal & Flatten Tree/2-MorrisT.cpp create mode 100644 Lecture068-Morris Traversal & Flatten Tree/3-FlattenBT.cpp create mode 100644 Lecture068-Morris Traversal & Flatten Tree/3A-RecursiveFlattenBT.cpp create mode 100644 Lecture069 - BST/1-Implementation.cpp create mode 100644 Lecture069 - BST/1-Implementation.exe create mode 100644 Lecture069 - BST/2-search.cpp create mode 100644 Lecture070-BST Questions/1-validateBST.cpp create mode 100644 Lecture070-BST Questions/2-KthSmallesrElmt.cpp create mode 100644 Lecture070-BST Questions/3-Lca.cpp create mode 100644 Lecture070-BST Questions/4-Presucc.cpp create mode 100644 Lecture071- BST 3/1-TwoSum.cpp create mode 100644 Lecture071- BST 3/2-FlattenABst.cpp create mode 100644 Lecture071- BST 3/3-NormalToBalanced.cpp create mode 100644 Lecture071- BST 3/4-BSTfromPreorder.cpp diff --git a/Lecture065-Trees Questions P3/1-longestBloodline.cpp b/Lecture065-Trees Questions P3/1-longestBloodline.cpp new file mode 100644 index 00000000..b281768e --- /dev/null +++ b/Lecture065-Trees Questions P3/1-longestBloodline.cpp @@ -0,0 +1,150 @@ +//{ Driver Code Starts +//Initial Template for C++ + +#include +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; + + Node(int x) + { + data = x; + left = NULL; + right = NULL; + } +}; + +void printInorder(Node *node) +{ + if (node == NULL) + { + return; + } + printInorder(node->left); + cout << node->data << " "; + printInorder(node->right); +} +Node *buildTree(string str) +{ + // Corner Case + if (str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for (string str; iss >> str;) + ip.push_back(str); + + // Create the root of the tree + Node *root = new Node(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while (!queue.empty() && i < ip.size()) + { + + // Get and remove the front of the queue + Node *currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if (currVal != "N") + { + + // Create the left child for the current Node + currNode->left = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if (i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if (currVal != "N") + { + + // Create the right child for the current node + currNode->right = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + + +class Solution +{ +public: + // height,sum + pair multiPurpose(Node* root){ + if( root == NULL){ + return {0,0}; + } + pair left = multiPurpose(root -> left); + pair right = multiPurpose(root -> right); + int sum = 0, height = 0; + if( left.first > right.first){ + sum = left.second + root-> data; + height = 1 + left.first; + } + else if( left.first < right.first){ + sum = right.second + root-> data; + height = 1 + right.first; + } + else{ + height = 1 + left.first; + sum = root -> data + max(left.second,right.second); + } + + return {height,sum}; + } + + int sumOfLongRootToLeafPath(Node *root) + { + + pair temp = multiPurpose(root); + + return temp.second; + } +}; + +int main() +{ + + int t; + scanf("%d", &t); + cin.ignore(); + while (t--) + { + string treeString; + getline(cin, treeString); + Node *root = buildTree(treeString); + Solution obj; + int res = obj.sumOfLongRootToLeafPath(root); + cout << res << "\n"; + } + return 0; +} diff --git a/Lecture065-Trees Questions P3/1A-longestBloodline.cpp b/Lecture065-Trees Questions P3/1A-longestBloodline.cpp new file mode 100644 index 00000000..c2816b61 --- /dev/null +++ b/Lecture065-Trees Questions P3/1A-longestBloodline.cpp @@ -0,0 +1,157 @@ +// { Driver Code Starts +//Initial Template for C++ + +#include +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; + + Node(int x) + { + data = x; + left = NULL; + right = NULL; + } +}; + +void printInorder(Node *node) +{ + if (node == NULL) + { + return; + } + printInorder(node->left); + cout << node->data << " "; + printInorder(node->right); +} +Node *buildTree(string str) +{ + // Corner Case + if (str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for (string str; iss >> str;) + ip.push_back(str); + + // Create the root of the tree + Node *root = new Node(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while (!queue.empty() && i < ip.size()) + { + + // Get and remove the front of the queue + Node *currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if (currVal != "N") + { + + // Create the left child for the current Node + currNode->left = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if (i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if (currVal != "N") + { + + // Create the right child for the current node + currNode->right = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + + +class Solution +{ +public: + + void solve(Node* root, int sum, int &maxSum, int len, int &maxLen) { + //base case + if( root == NULL ) { + + if(len > maxLen) + { + maxLen = len; + maxSum = sum; + } + else if(len == maxLen) + { + maxSum = max(sum, maxSum); + } + return; + } + + sum = sum + root->data; + + solve(root->left, sum, maxSum, len+1, maxLen); + solve(root->right, sum, maxSum, len+1, maxLen); + + } + + int sumOfLongRootToLeafPath(Node *root) + { + int len = 0; + int maxLen = 0; + + int sum = 0; + int maxSum = INT_MIN; + + solve(root, sum, maxSum, len, maxLen); + + return maxSum; + } +}; + +// { Driver Code Starts. + +int main() +{ + + int t; + scanf("%d", &t); + cin.ignore(); + while (t--) + { + string treeString; + getline(cin, treeString); + Node *root = buildTree(treeString); + Solution obj; + int res = obj.sumOfLongRootToLeafPath(root); + cout << res << "\n"; + } + return 0; +} // } Driver Code Ends \ No newline at end of file diff --git a/Lecture065-Trees Questions P3/2-LCAofBT.cpp b/Lecture065-Trees Questions P3/2-LCAofBT.cpp new file mode 100644 index 00000000..7c95da5c --- /dev/null +++ b/Lecture065-Trees Questions P3/2-LCAofBT.cpp @@ -0,0 +1,168 @@ +//{ Driver Code Starts +#include +using namespace std; + +// Tree Node +struct Node +{ + int data; + Node* left; + Node* right; + Node(){ + data = 0; + left = right = NULL; + } + Node(int x){ + data = x; + left = right = NULL; + } +}; + +class Solution +{ + public: + //Function to return the lowest common ancestor in a Binary Tree. + void FindHim(Node* &root, int n1, int n2, vector output , vector &s1, vector &s2){ + if(root == NULL){ + return; + } + output.push_back(root); + if(root -> data == n1){ + // output.push_back(root); + s1 = output; + } + if(root -> data == n2){ + // output.push_back(root); + s2 = output; + } + FindHim(root->left,n1,n2,output,s1,s2); + FindHim(root->right,n1,n2,output,s1,s2); + + } + + Node* lca(Node* root ,int n1 ,int n2 ) + { + + vector s1,s2,ans; + FindHim(root,n1,n2,ans,s1,s2); + int i = 0, j = 0; + int a = s1.size(), b = s2.size(); + while( (i < a && j < b) && s1[i] == s2[j] ){ + i++; + j++; + } + + + + return s1[i-1]; + } +}; + +//{ Driver Code Starts. + +Node* newNode(int val) +{ + Node* temp = new Node; + temp->data = val; + temp->left = NULL; + temp->right = NULL; + + return temp; +} + + +// Function to Build Tree +Node* buildTree(string str) +{ + // Corner Case + if(str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for(string str; iss >> str; ) + ip.push_back(str); + + // for(string i:ip) + // cout< queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while(!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node* currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if(currVal != "N") { + + // Create the left child for the current node + currNode->left = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if(i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if(currVal != "N") { + + // Create the right child for the current node + currNode->right = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + +// Function for Inorder Traversal +void printInorder(Node* root) +{ + if(!root) + return; + + printInorder(root->left); + cout<data<<" "; + printInorder(root->right); +} + +int main() { + int t; + scanf("%d",&t); + while(t--) + { + int a,b; + scanf("%d %d ",&a,&b); + string s; + getline(cin,s); + Node* root = buildTree(s); + Solution ob; + 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 z

cT;suHPiDEID$HI*ce5%fg)6!u)YHFC0hQtf_Qvzk|l;}@9vaf#t1nnh()k>lB z5^DuAXRVN=$Q88nd5TMA5iblnj|`zv7=cKH9_1xGx8wfp6GLhkMXfB6jGnjy#}H;g zO}0d+Q|c!~2hniKC^#Mbt>`>2omXE~(pUc(li=|bze~hFM|+iUw0EpmqQ>HALn-nU z-Vh^JwL1`jI~pKj4T=~sVR^Lc7wpvc7J2Dm_DHcr_EFa4 zP3a4{ix7Ah&6{|4Z*#%lr-HQ@`5ue`1j{-tjrkF%ArXb+;3yc+H=V0Dy7XKrN;xv_O9_I~8U z8uUlLiEOYZ`o84V9RFcIoRd6NGaDxa;+Vl~1j>-n$1L?ixWTv2$Azk5Vyrd7C-?ah zUYC0{>fb3(zGmdZB$5Io#onghLBqdwcUW;(X1d8= zQ5-)$0i}F=!h$69Qx}qsRe-ZC^=w5r`PFCh9jham(`&#PS8F(5wOUcT=uS9u?^|^r zoYMPN+)v>HTONRO;enximNbYjWn=LF@JTuwTb8wi^TVTC9<`nvsX$vH&@GRu-ry#& z`wzs5tG!Ays^qxa_8ZG+Yd+J_Zp1Sway||PK?Ic#+S9%|%rP#I%>EZj&-OtN&_anuf#Lx!^ zJtLZ#cdoZY}2vinw(FmZM&iVNDH!=EAL2*xgC@ zCm2fK8~Wg?W|SRm2J^s`hJY(A09Pg*u1xdYYC!0e5HaeO9r9h{9k&g-9nIi{YWdaK z8rEJR_kb4FUsoTOd+VR0Q`mTJV>rxQwrI>%y39_xD{u}0-7lMOY7Wbz2URt8GK!Ma8D;1t#0%ks3h{xMhrcaJeE zSfc)5!76OLt1+DZ_ZG84v7o>i`d|TT&S%ZOZU*OQv-5OLK0K&77DHSuh#-^&;bCo- zfhr3^qAUoHvLHOlg77E{!lNt*kFp><%7XAH3Ν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 +using namespace std; + +// Tree Node +struct Node +{ + int data; + Node* left; + Node* right; + Node(){ + data = 0; + left = right = NULL; + } + Node(int x){ + data = x; + left = right = NULL; + } +}; + +class Solution +{ + public: + //Function to return the lowest common ancestor in a Binary Tree. + Node* lca(Node* root ,int n1 ,int n2 ) + { + //base case + if(root == NULL) + { + return NULL; + } + + if(root->data == n1 || root->data == n2) + { + return root; + } + + Node* leftAns = lca(root->left, n1, n2); + Node* rightAns = lca(root->right, n1, n2); + + if(leftAns != NULL && rightAns != NULL) + { + return root; + } + else if(leftAns != NULL && rightAns == NULL) + return leftAns; + else if(leftAns == NULL && rightAns != NULL) + return rightAns; + else + return NULL; + } +}; + +// { Driver Code Starts. + +Node* newNode(int val) +{ + Node* temp = new Node; + temp->data = val; + temp->left = NULL; + temp->right = NULL; + + return temp; +} + + +// Function to Build Tree +Node* buildTree(string str) +{ + // Corner Case + if(str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for(string str; iss >> str; ) + ip.push_back(str); + + // for(string i:ip) + // cout< queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while(!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node* currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if(currVal != "N") { + + // Create the left child for the current node + currNode->left = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if(i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if(currVal != "N") { + + // Create the right child for the current node + currNode->right = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + +// Function for Inorder Traversal +void printInorder(Node* root) +{ + if(!root) + return; + + printInorder(root->left); + cout<data<<" "; + printInorder(root->right); +} + +int main() { + int t; + scanf("%d",&t); + while(t--) + { + int a,b; + scanf("%d %d ",&a,&b); + string s; + getline(cin,s); + Node* root = buildTree(s); + Solution ob; + cout<data< +using namespace std; + +struct Node +{ + int data; + Node *left; + Node *right; + + Node(int val) { + data = val; + left = right = NULL; + } +}; + +// Function to Build Tree +Node *buildTree(string str) +{ + // Corner Case + if (str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for (string str; iss >> str;) + ip.push_back(str); + + // Create the root of the tree + Node *root = new Node(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while (!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node *currNode = queue.front(); + queue.pop(); + + // Get the current Node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if (currVal != "N") { + + // Create the left child for the current Node + currNode->left = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if (i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if (currVal != "N") { + + // Create the right child for the current Node + currNode->right = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + + +// } Driver Code Ends +//User function template for C++ + +/* +struct Node +{ + int data; + Node *left; + Node *right; + + Node(int val) { + data = val; + left = right = NULL; + } +}; +*/ +class Solution{ + public: + + void solve2(Node* root, int k, long long int sum, int &count){ + + if(root == NULL){ + return; + } + + sum+=root->data; + if(sum == k){ + count++; + } + cout << root -> data << " " << sum << " " << count << endl; + Node* l = root->left; + Node* r = root->right; + solve(r,k,sum,count); + solve(r,k,0,count); + solve(l,k,0,count); + solve(l,k,sum,count); + } + void solve(Node* root, int k, long long int sum, int &count ,int flag = 0){ + + if(root == NULL){ + return; + } + Node* l = root->left; + Node* r = root->right; + if(flag == 0){ + solve(r,k,0,count,0); + solve(l,k,0,count,0); + } + sum+=root->data; + if(sum == k){ + count++; + } + // cout << root -> data << " " << sum << " " << count << endl; + solve(r,k,sum,count,1); + solve(l,k,sum,count,1); + } + + + int sumK(Node *root,int k) + { + vector path; + int count = 0; + solve(root,k,0,count); + return count; + } +}; + +//{ Driver Code Starts. + +int main() { + string tc; + getline(cin, tc); + int t = stoi(tc); + + while(t--) + { + string s ,ch; + getline(cin, s); + Node* root = buildTree(s); + + string key; + getline(cin, key); + int k=stoi(key); + Solution ob; + cout << ob.sumK(root, k) << "\n"; + } + return 0; +} +// } Driver Code Ends \ No newline at end of file diff --git a/Lecture065-Trees Questions P3/3-SlowKSumPath.cpp b/Lecture065-Trees Questions P3/3-SlowKSumPath.cpp new file mode 100644 index 00000000..16f26556 --- /dev/null +++ b/Lecture065-Trees Questions P3/3-SlowKSumPath.cpp @@ -0,0 +1,136 @@ +// ! IMP + + +#include +using namespace std; + +struct Node +{ + int data; + Node *left; + Node *right; + + Node(int val) { + data = val; + left = right = NULL; + } +}; + +// Function to Build Tree +Node *buildTree(string str) +{ + // Corner Case + if (str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for (string str; iss >> str;) + ip.push_back(str); + + // Create the root of the tree + Node *root = new Node(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while (!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node *currNode = queue.front(); + queue.pop(); + + // Get the current Node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if (currVal != "N") { + + // Create the left child for the current Node + currNode->left = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if (i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if (currVal != "N") { + + // Create the right child for the current Node + currNode->right = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + + +class Solution{ + public: + void solve(Node* root, int k, vector path, int &count){ + if(root == NULL) + return; + + path.push_back(root->data); + solve(root->left,k,path,count); + solve(root->right,k,path,count); + + int size = path.size(); + int sum = 0; + for(int i = size -1; i >=0 ; i--){ + sum+=path[i]; + if(sum ==k){ + count++; + } + path.pop_back(); + } + } + + + int sumK(Node *root,int k) + { + vector path; + int count = 0; + solve(root,k,path,count); + return count; + } +}; + +//{ Driver Code Starts. + +int main() { + string tc; + getline(cin, tc); + int t = stoi(tc); + + while(t--) + { + string s ,ch; + getline(cin, s); + Node* root = buildTree(s); + + string key; + getline(cin, key); + int k=stoi(key); + Solution ob; + cout << ob.sumK(root, k) << "\n"; + } + return 0; +} +// } Driver Code Ends \ No newline at end of file diff --git a/Lecture065-Trees Questions P3/3-fastKsumPath.cpp b/Lecture065-Trees Questions P3/3-fastKsumPath.cpp new file mode 100644 index 00000000..65c66263 --- /dev/null +++ b/Lecture065-Trees Questions P3/3-fastKsumPath.cpp @@ -0,0 +1,132 @@ +// ! Prefix Sum in trees + +#include +using namespace std; + +struct Node +{ + int data; + Node *left; + Node *right; + + Node(int val) { + data = val; + left = right = NULL; + } +}; + +// Function to Build Tree +Node *buildTree(string str) +{ + // Corner Case + if (str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for (string str; iss >> str;) + ip.push_back(str); + + // Create the root of the tree + Node *root = new Node(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while (!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node *currNode = queue.front(); + queue.pop(); + + // Get the current Node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if (currVal != "N") { + + // Create the left child for the current Node + currNode->left = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if (i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if (currVal != "N") { + + // Create the right child for the current Node + currNode->right = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + +class Solution{ + public: + map notForSlow; + void solve(Node* root, int k, int currSum,int &count){ + if(root == NULL){ + return; + } + currSum+=root->data; + if(notForSlow[currSum - k] > 0){ + count+=notForSlow[currSum - k]; + } + notForSlow[currSum]++; + solve(root->left,k,currSum,count); + solve(root->right,k,currSum,count); + notForSlow[currSum]--; + + } + + + int sumK(Node *root,int k) + { + notForSlow[0]++; + vector path; + int count = 0; + solve(root,k,0,count); + return count; + } +}; + +//{ Driver Code Starts. + +int main() { + string tc; + getline(cin, tc); + int t = stoi(tc); + + while(t--) + { + string s ,ch; + getline(cin, s); + Node* root = buildTree(s); + + string key; + getline(cin, key); + int k=stoi(key); + Solution ob; + cout << ob.sumK(root, k) << "\n"; + } + return 0; +} +// } Driver Code Ends \ No newline at end of file diff --git a/Lecture065-Trees Questions P3/4-KthAncesstor.cpp b/Lecture065-Trees Questions P3/4-KthAncesstor.cpp new file mode 100644 index 00000000..d0e9401d --- /dev/null +++ b/Lecture065-Trees Questions P3/4-KthAncesstor.cpp @@ -0,0 +1,125 @@ +//{ Driver Code Starts +#include +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; +}; +Node* newNode(int val) +{ + Node* temp = new Node; + temp->data = val; + temp->left = NULL; + temp->right = NULL; + + return temp; +} +Node* buildTree(string str) +{ + // Corner Case + if(str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for(string str; iss >> str; ) + ip.push_back(str); + + // Create the root of the tree + Node* root = newNode(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while(!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node* currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if(currVal != "N") { + + // Create the left child for the current node + currNode->left = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if(i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if(currVal != "N") { + + // Create the right child for the current node + currNode->right = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} +int kthAncestor(Node *root, int k, int node); + +int main() +{ + int t; + scanf("%d ",&t); + while(t--) + { + int k , node; + scanf("%d ",&k); + scanf("%d ",&node); + string s; + getline(cin,s); + Node* root = buildTree(s); + cout< temp,vector &peedhi ){ + if(root == NULL){ + return; + } + if( root -> data == n){ + peedhi = temp; + return; + } + temp.push_back(root->data); + solve(root->left,n,temp,peedhi); + solve(root->right,n,temp,peedhi); +} + +int kthAncestor(Node *root, int k, int node) +{ + vector peedhi,temp; + solve(root,node,temp,peedhi); + int ans = -1; + if(k <= peedhi.size() ) + ans = peedhi[peedhi.size() - k]; + + + + return ans; +} diff --git a/Lecture065-Trees Questions P3/4-SC-1KthAncesstor.cpp b/Lecture065-Trees Questions P3/4-SC-1KthAncesstor.cpp new file mode 100644 index 00000000..1bdc53b1 --- /dev/null +++ b/Lecture065-Trees Questions P3/4-SC-1KthAncesstor.cpp @@ -0,0 +1,160 @@ +//{ Driver Code Starts +#include +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; +}; +Node* newNode(int val) +{ + Node* temp = new Node; + temp->data = val; + temp->left = NULL; + temp->right = NULL; + + return temp; +} +Node* buildTree(string str) +{ + // Corner Case + if(str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for(string str; iss >> str; ) + ip.push_back(str); + + // Create the root of the tree + Node* root = newNode(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while(!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node* currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if(currVal != "N") { + + // Create the left child for the current node + currNode->left = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if(i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if(currVal != "N") { + + // Create the right child for the current node + currNode->right = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} +int kthAncestor(Node *root, int k, int node); + +int main() +{ + int t; + scanf("%d ",&t); + while(t--) + { + int k , node; + scanf("%d ",&k); + scanf("%d ",&node); + string s; + getline(cin,s); + Node* root = buildTree(s); + cout< solve(Node* root, int k, int node){ + if(root == NULL){ + return {0,-1}; + } + if(root -> data == node){ + return {node,0}; + } + + pair left = solve(root->left,k,node); + pair right = solve(root->right,k,node); + // cout << root -> data << endl; + // cout << left.first << " " << left.second << endl; + // cout << right.first << " " << right.second << endl; + if(left.second != -1){ + if(left.second < k){ + return {root->data,left.second+1}; + } + else{ + return {left.first,k}; + } + } + else if(right.second != -1){ + // cout << root -> data << endl; + if(right.second < k){ + return {root->data,right.second+1}; + } + else{ + return {right.first,k}; + } + } + else{ + return {0,-1}; + } + +} + +int kthAncestor(Node *root, int k, int node) +{ + pair ans = solve(root,k,node); + // cout << ans.first << " " < +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; +}; +Node* newNode(int val) +{ + Node* temp = new Node; + temp->data = val; + temp->left = NULL; + temp->right = NULL; + + return temp; +} +Node* buildTree(string str) +{ + // Corner Case + if(str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for(string str; iss >> str; ) + ip.push_back(str); + + // Create the root of the tree + Node* root = newNode(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while(!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node* currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if(currVal != "N") { + + // Create the left child for the current node + currNode->left = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if(i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if(currVal != "N") { + + // Create the right child for the current node + currNode->right = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} +int kthAncestor(Node *root, int k, int node); + +int main() +{ + int t; + scanf("%d ",&t); + while(t--) + { + int k , node; + scanf("%d ",&k); + scanf("%d ",&node); + string s; + getline(cin,s); + Node* root = buildTree(s); + cout<data == node) + { + return root; + } + + Node* leftAns = solve(root->left, k, node); + Node* rightAns = solve(root->right, k, node); + + + //wapas + if(leftAns != NULL && rightAns == NULL) + { + k--; + if(k<=0) + { + //answer lock + k = INT_MAX; + return root; + } + return leftAns; + } + + if(leftAns == NULL && rightAns != NULL) { + k--; + if(k<=0) + { + //answer lock + k = INT_MAX; + return root; + } + return rightAns; + } + return NULL; + + +} +int kthAncestor(Node *root, int k, int node) +{ + Node* ans = solve(root, k, node); + if(ans == NULL || ans->data == node) + return -1; + else + return ans->data; +} \ No newline at end of file diff --git a/Lecture065-Trees Questions P3/5-MaxNonAdjacentSum.cpp b/Lecture065-Trees Questions P3/5-MaxNonAdjacentSum.cpp new file mode 100644 index 00000000..9cca83bc --- /dev/null +++ b/Lecture065-Trees Questions P3/5-MaxNonAdjacentSum.cpp @@ -0,0 +1,130 @@ +// ! IMP +#include +using namespace std; + +// Tree Node +struct Node +{ + int data; + Node* left; + Node* right; +}; + +// Utility function to create a new Tree Node +Node* newNode(int val) +{ + Node* temp = new Node; + temp->data = val; + temp->left = NULL; + temp->right = NULL; + + return temp; +} + +// Function to Build Tree +Node* buildTree(string str) +{ + // Corner Case + if(str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for(string str; iss >> str; ) + ip.push_back(str); + + // Create the root of the tree + Node* root = newNode(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while(!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node* currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if(currVal != "N") { + + // Create the left child for the current node + currNode->left = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if(i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if(currVal != "N") { + + // Create the right child for the current node + currNode->right = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + +class Solution{ + public: + + // inc, not inc + pair solve(Node*root){ + if(root == NULL){ + pair n = make_pair(0,0); + return n; + } + + pair left = solve(root->left); + pair right = solve(root->right); + + int inc = root->data + left.second + right.second; + int not_inc = max(left.first,left.second) + max(right.first,right.second); + + return {inc,not_inc}; + } + + + int getMaxSum(Node *root) + { + pair ans = solve(root); + + return max(ans.first,ans.second); + } +}; + +int main() +{ + int t; + scanf("%d ",&t); + while (t--) + { + string s; + getline(cin,s); + Node* root = buildTree(s); + Solution ob; + cout< +using namespace std; + +struct Node +{ + int data; + struct Node *left; + struct Node *right; + + Node(int x){ + data = x; + left = NULL; + right = NULL; + } +}; +void printPostOrder(Node *root) +{ + if(root==NULL) + return; + printPostOrder(root->left); + printPostOrder(root->right); + cout<data<<" "; +} + +class Solution{ + public: + + Node* buildTree(int in[],int pre[], int n) + { + if( n == 0 ){ + return NULL; + } + + if( n == 1){ + Node* ans = new Node(in[0]); + return ans; + } + + + + // ! to optimize we can use map + // ! | + // ! \/ + int i = 0; + while( in[i] != pre[0]){ + i++; + } + + + Node* ans = new Node(pre[0]); + ans -> left = buildTree(in,pre+1,i); + ans -> right = buildTree(in+i+1,pre+1+i,n-i-1); + return ans; + } +}; + +//{ Driver Code Starts. +int main() +{ + int t; + cin>>t; + while(t--) + { + int n; + cin>>n; + + int inorder[n], preorder[n]; + for(int i=0; i> inorder[i]; + for(int i=0; i> preorder[i]; + Solution obj; + Node *root = obj.buildTree(inorder, preorder, n); + printPostOrder(root); + cout<< endl; + } +} + +// } Driver Code Ends \ No newline at end of file diff --git a/Lecture066-Construct A BT/2-constructBT_InandPost.cpp b/Lecture066-Construct A BT/2-constructBT_InandPost.cpp new file mode 100644 index 00000000..1aeef604 --- /dev/null +++ b/Lecture066-Construct A BT/2-constructBT_InandPost.cpp @@ -0,0 +1,69 @@ +#include +using namespace std; + +struct Node { + int data; + struct Node* left; + struct Node* right; + + Node(int x) { + data = x; + left = right = NULL; + } +}; + +void preOrder(Node* node) { + if (node == NULL) return; + + /* then print the data of node */ + printf("%d ", node->data); + + /* first recur on left child */ + preOrder(node->left); + + /* now recur on right child */ + preOrder(node->right); +} + +Node* buildTree(int in[], int post[], int n); + +int main() { + int t, n; + cin >> t; + while (t--) { + cin >> n; + int in[n], post[n]; + for (int i = 0; i < n; i++) cin >> in[i]; + for (int i = 0; i < n; i++) cin >> post[i]; + Node* root = buildTree(in, post, n); + preOrder(root); + cout << endl; + } + return 0; +} + +Node *buildTree(int in[], int post[], int n) { + if( n == 0){ + return NULL; + } + + if(n == 1){ + Node* ans = new Node(post[n-1]); + return ans; + } + + Node* ans = new Node(post[n-1]); + + // ! to optimize we can use map + // ! | + // ! \/ + int i = 0; + while( in[i] != post[n-1]){ + i++; + } + + ans -> left = buildTree(in,post,i); + ans -> right = buildTree(in+i+1,post+i,n-i-1); + + return ans; +} diff --git a/Lecture067-Burn A Tree/Hard.cpp b/Lecture067-Burn A Tree/Hard.cpp new file mode 100644 index 00000000..533f898a --- /dev/null +++ b/Lecture067-Burn A Tree/Hard.cpp @@ -0,0 +1,175 @@ +// ! T-IMP +#include +using namespace std; + +struct Node { + int data; + Node *left; + Node *right; + + Node(int val) { + data = val; + left = right = NULL; + } +}; + + +Node *buildTree(string str) { + // Corner Case + if (str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for (string str; iss >> str;) + ip.push_back(str); + + // Create the root of the tree + Node *root = new Node(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while (!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node *currNode = queue.front(); + queue.pop(); + + // Get the current Node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if (currVal != "N") { + + // Create the left child for the current Node + currNode->left = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if (i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if (currVal != "N") { + + // Create the right child for the current Node + currNode->right = new Node(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + +class Solution { + public: + Node* findingDaddy(Node* root,Node* papa, map &parent,int target){ + if( root == NULL) + return NULL; + + parent[root] = papa; + Node* left = findingDaddy(root->left,root,parent,target); + Node* right = findingDaddy(root->right,root,parent,target); + + if(root-> data == target) + return root; + + if(left != NULL) + return left; + + if(right != NULL) + return right; + + return NULL; + } + + int minTime(Node* root, int target) + { + if(root == NULL){ + return 0; + } + map parent; + Node* tNode = findingDaddy(root,NULL,parent,target); + int time = 0; + map visited ; + visited[tNode] = true; + // cout << parent.size() << " "; + queue q; + q.push(tNode); + // cout << q.size(); + while(!q.empty()){ + int flag = 0; + int size = q.size(); + for( int i = 0; i < size; i++){ + Node*temp = q.front(); + q.pop(); + if(parent[temp] != NULL && visited[parent[temp]] == false){ + q.push(parent[temp]); + flag = 1; + } + + if(temp->left != NULL && visited[temp->left] == false){ + q.push(temp->left); + flag = 1; + } + if(temp->right != NULL && visited[temp->right] == false){ + q.push(temp->right); + flag = 1; + } + + + visited[parent[temp]] = true; + visited[temp->left] = true; + visited[temp->right] = true; + } + if(flag) + time++; + + } + return time; + } +}; + +//{ Driver Code Starts. + +int main() +{ + int tc; + scanf("%d ", &tc); + while (tc--) + { + string treeString; + getline(cin, treeString); + // cout<>target; + // cout< +using namespace std; + +// A binary tree Node has data, pointer to left child +// and a pointer to right child +struct Node { + int data; + struct Node* left; + struct Node* right; + Node(int data) + { + this->data = data; + left = right = NULL; + } +}; + +//Iterative function for inorder tree traversal +void inOrder(struct Node* root) +{ + stack s; + Node* curr = root; + + while (curr != NULL || s.empty() == false) { + + // Reach the left most Node of the + // curr Node + while (curr != NULL) { + + // Place pointer to a tree node on + // the stack before traversing + // the node's left subtree + s.push(curr); + curr = curr->left; + } + + // Current must be NULL at this point + curr = s.top(); + s.pop(); + + cout << curr->data << " "; + + // we have visited the node and its + // left subtree. Now, it's right + // subtree's turn + curr = curr->right; + + } +} + +// Driver program to test above functions +int main() +{ + /* Constructed binary tree is + 1 + / \ + 2 3 + / \ + 4 5 + */ + 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); + + inOrder(root); + return 0; +} diff --git a/Lecture068-Morris Traversal & Flatten Tree/2-MorrisT.cpp b/Lecture068-Morris Traversal & Flatten Tree/2-MorrisT.cpp new file mode 100644 index 00000000..ea28a18c --- /dev/null +++ b/Lecture068-Morris Traversal & Flatten Tree/2-MorrisT.cpp @@ -0,0 +1,88 @@ +// ! IMP Inorder traversal S.C O(1) + +#include +using namespace std; + +struct tNode { + int data; + struct tNode* left; + struct tNode* right; +}; + +void MorrisTraversal(struct tNode* root) +{ + struct tNode *current, *pre; + + if (root == NULL) + return; + + current = root; + while (current != NULL) { + + if (current->left == NULL) { + cout << current->data << " "; + current = current->right; + } + else { + + /* Find the inorder predecessor of current */ + pre = current->left; + while (pre->right != NULL + && pre->right != current) + pre = pre->right; + + /* Make current as the right child of its + inorder predecessor */ + if (pre->right == NULL) { + pre->right = current; + current = current->left; + } + + /* Revert the changes made in the 'if' part to + restore the original tree i.e., fix the right + child of predecessor */ + else { + pre->right = NULL; + cout << current->data << " "; + current = current->right; + } /* End of if condition pre->right == NULL */ + } /* End of if condition current->left == NULL*/ + } /* End of while */ +} + +/* UTILITY FUNCTIONS */ +/* Helper function that allocates a new tNode with the +given data and NULL left and right pointers. */ +struct tNode* newtNode(int data) +{ + struct tNode* node = new tNode; + node->data = data; + node->left = NULL; + node->right = NULL; + + return (node); +} + +/* Driver program to test above functions*/ +int main() +{ + + /* Constructed binary tree is + 1 + / \ + 2 3 + / \ + 4 5 +*/ + struct tNode* root = newtNode(1); + root->left = newtNode(2); + root->right = newtNode(3); + root->left->left = newtNode(4); + root->left->right = newtNode(5); + + MorrisTraversal(root); + + return 0; +} + +// This code is contributed by Sania Kumari Gupta (kriSania804) diff --git a/Lecture068-Morris Traversal & Flatten Tree/3-FlattenBT.cpp b/Lecture068-Morris Traversal & Flatten Tree/3-FlattenBT.cpp new file mode 100644 index 00000000..bfdc8168 --- /dev/null +++ b/Lecture068-Morris Traversal & Flatten Tree/3-FlattenBT.cpp @@ -0,0 +1,150 @@ + +#include +using namespace std; + +struct Node { + int key; + Node *left, *right; +}; + + +Node* newNode(int key) +{ + Node* node = new Node; + node->key = key; + node->left = node->right = NULL; + return (node); +} + +Node* buildTree(string str) +{ + // Corner Case + if (str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for (string str; iss >> str; ) + ip.push_back(str); + + // Create the root of the tree + Node* root = newNode(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while (!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node* currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if (currVal != "N") { + + // Create the left child for the current node + currNode->left = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if (i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if (currVal != "N") { + + // Create the right child for the current node + currNode->right = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + +void inorder(struct Node* root) +{ + // base condition + if (root == NULL) + return; + inorder(root->left); + cout << root->key << " "; + inorder(root->right); +} + +class Solution +{ + + public: + void flatten(Node *root) + { + Node* curr = root; + while(curr != NULL ){ + if(curr -> left == NULL){ + curr = curr -> right; + } + else{ + Node* pre = curr->left; + Node* store = pre; + while(pre -> right != NULL && pre -> right != curr) + pre = pre -> right; + + if(pre -> right == NULL){ + pre -> right = curr; + curr = curr -> left; + } + else{ + curr -> left = NULL; + Node* temp = curr -> right; + curr -> right = store; + pre -> right = temp; + curr = pre; + } + } + + } + } +}; + +int main() { + + int t; + cin >> t; + getchar(); + + while (t--) + { + + string str; + getline(cin, str); + + Node *root = buildTree(str); + Solution ob; + ob.flatten(root); + inorder(root); + + + cout << "\n"; + } + + return 0; +} + +// } Driver Code Ends \ No newline at end of file diff --git a/Lecture068-Morris Traversal & Flatten Tree/3A-RecursiveFlattenBT.cpp b/Lecture068-Morris Traversal & Flatten Tree/3A-RecursiveFlattenBT.cpp new file mode 100644 index 00000000..7858e743 --- /dev/null +++ b/Lecture068-Morris Traversal & Flatten Tree/3A-RecursiveFlattenBT.cpp @@ -0,0 +1,148 @@ +//{ Driver Code Starts +//Initial Template for C++ + +#include +using namespace std; + +struct Node { + int key; + Node *left, *right; +}; + +/* utility that allocates a new Node + with the given key */ +Node* newNode(int key) +{ + Node* node = new Node; + node->key = key; + node->left = node->right = NULL; + return (node); +} + +Node* buildTree(string str) +{ + // Corner Case + if (str.length() == 0 || str[0] == 'N') + return NULL; + + // Creating vector of strings from input + // string after spliting by space + vector ip; + + istringstream iss(str); + for (string str; iss >> str; ) + ip.push_back(str); + + // Create the root of the tree + Node* root = newNode(stoi(ip[0])); + + // Push the root to the queue + queue queue; + queue.push(root); + + // Starting from the second element + int i = 1; + while (!queue.empty() && i < ip.size()) { + + // Get and remove the front of the queue + Node* currNode = queue.front(); + queue.pop(); + + // Get the current node's value from the string + string currVal = ip[i]; + + // If the left child is not null + if (currVal != "N") { + + // Create the left child for the current node + currNode->left = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->left); + } + + // For the right child + i++; + if (i >= ip.size()) + break; + currVal = ip[i]; + + // If the right child is not null + if (currVal != "N") { + + // Create the right child for the current node + currNode->right = newNode(stoi(currVal)); + + // Push it to the queue + queue.push(currNode->right); + } + i++; + } + + return root; +} + +void inorder(struct Node* root) +{ + // base condition + if (root == NULL) + return; + inorder(root->left); + cout << root->key << " "; + inorder(root->right); +} + + +// } Driver Code Ends +//User function Template for C++ +class Solution +{ + Node* partByPart(Node* root){ + + if(root==NULL || (root -> left == NULL && root -> right == NULL)){ + return root; + } + Node*temp = root-> right; + Node* curr = root; + root -> right = partByPart(root->left); + while(curr -> right != NULL) + curr = curr -> right; + + curr-> right = partByPart(temp); + root -> left = NULL; + return root; + } + + public: + void flatten(Node *root) + { + Node* Ans = partByPart(root); + } +}; + +//{ Driver Code Starts. +int main() { + + int t; + cin >> t; + getchar(); + + while (t--) + { + + string str; + getline(cin, str); + + Node *root = buildTree(str); + Solution ob; + ob.flatten(root); + inorder(root); + + + cout << "\n"; + } + + return 0; +} + +// } Driver Code Ends \ No newline at end of file diff --git a/Lecture069 - BST/1-Implementation.cpp b/Lecture069 - BST/1-Implementation.cpp new file mode 100644 index 00000000..93853406 --- /dev/null +++ b/Lecture069 - BST/1-Implementation.cpp @@ -0,0 +1,139 @@ +#include +using namespace std; + +class Node{ + public: + int data; + Node* left; + Node* right; + + Node(int x){ + this->data = x; + this->left = NULL; + this->right = NULL; + } +}; + +void levelOrderTraversal(Node* root){ + queue q; + q.push(root); + q.push(NULL); + while (!q.empty()){ + Node* temp = q.front(); + q.pop(); + if( temp == NULL){ + cout << endl; + if(!q.empty()){ + q.push(NULL); + } + } + else{ + cout << temp -> data << " "; + if(temp -> left){ + q.push(temp -> left); + } + else{ + // cout << "N "; + } + if(temp -> right){ + q.push(temp -> right); + } + else{ + // cout << "N "; + } + // q.push(NULL); + } + } + + +} + +Node* Insert(Node* root, int x){ + if(root == NULL){ + Node* temp = new Node(x); + return temp; + } + int t = root->data; + if( t > x) + root -> left = Insert(root->left,x); + else + root -> right = Insert(root->right,x); + + return root; +} + +int maxValue(Node* root){ + while( root -> right != NULL) + root = root -> right; + + return root -> data; +} + +int minValue(Node* root){ + while( root -> left != NULL) + root = root -> left; + + return root -> data; +} + +Node* Delete(Node* root, int x){ + if(root == NULL){ + return NULL; + } + + if( root -> data == x){ + // 0 child + if( root -> left == NULL && root -> right == NULL){ + delete root; + return NULL; + } + + // 1 child + if( root -> left == NULL && root -> right != NULL){ + Node* temp = root -> right; + delete root; + return temp; + } + if( root -> left != NULL && root -> right == NULL){ + Node* temp = root -> left; + delete root; + return temp; + } + + // 2 children + if( root -> left != NULL && root -> right != NULL){ + int mini = minValue(root -> right); + root -> data = mini; + root -> right = Delete(root -> right, mini); + return root; + } + + } + else if( root -> data > x ){ + root -> left = Delete(root -> left,x); + return root; + } + root -> right = Delete(root -> right,x); + return root; + + +} + +void takeInput(Node* &root){ + int d; + cin >> d; + while(d != -1){ + root = Insert(root,d); + cin >> d; + } +} + +int main(){ + Node* root = NULL; + takeInput(root); + levelOrderTraversal(root); + root = Delete(root,5); + levelOrderTraversal(root); + +return 0; +} \ No newline at end of file diff --git a/Lecture069 - BST/1-Implementation.exe b/Lecture069 - BST/1-Implementation.exe new file mode 100644 index 0000000000000000000000000000000000000000..85de7cac90881d6e639ba2cb63ad611fb26e84e3 GIT binary patch literal 170404 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 KxQZH`6aF7B8YRO3 literal 0 HcmV?d00001 diff --git a/Lecture069 - BST/2-search.cpp b/Lecture069 - BST/2-search.cpp new file mode 100644 index 00000000..e837bf40 --- /dev/null +++ b/Lecture069 - BST/2-search.cpp @@ -0,0 +1,37 @@ +#include +using namespace std; + +template + class BinaryTreeNode + { + public: + T data; + BinaryTreeNode *left, *right; + BinaryTreeNode() : data(0), left(NULL), right(NULL) {} + BinaryTreeNode(T x) : data(x), left(NULL), right(NULL) {} + BinaryTreeNode(T x, BinaryTreeNode *left, BinaryTreeNode *right) : data(x), left(left), right(right) {} + }; + +bool searchInBST(BinaryTreeNode *root, int x) { + while(root != NULL){ + int t = root -> data; + if( t == x){ + return true; + } + else if( t > x){ + root = root -> left; + } + else{ + root = root -> right; + } + } + + return false; +} + +int main(){ + + + +return 0; +} \ No newline at end of file diff --git a/Lecture070-BST Questions/1-validateBST.cpp b/Lecture070-BST Questions/1-validateBST.cpp new file mode 100644 index 00000000..9c81a912 --- /dev/null +++ b/Lecture070-BST Questions/1-validateBST.cpp @@ -0,0 +1,35 @@ +// Approach 1 inorder traversal iss sorted +// Approach 2 left subtree all nodes contains value less than root and right has greater +#include +using namespace std; +template + +class BinaryTreeNode +{ +public : + T data; + BinaryTreeNode *left; + BinaryTreeNode *right; + + BinaryTreeNode(T data) { + this -> data = data; + left = NULL; + right = NULL; + } +}; + + +bool isBST(BinaryTreeNode *root, int up, int low){ + if(root == NULL){ + return true; + } + bool check = (root -> data >= low) && (root -> data <= up); + bool left = isBST(root->left,root->data,low); + bool right = isBST(root -> right,up,root->data); + return left && right && check; +} + + +bool validateBST(BinaryTreeNode *root) { + return isBST(root,INT_MAX,INT_MIN); +} \ No newline at end of file diff --git a/Lecture070-BST Questions/2-KthSmallesrElmt.cpp b/Lecture070-BST Questions/2-KthSmallesrElmt.cpp new file mode 100644 index 00000000..335d5934 --- /dev/null +++ b/Lecture070-BST Questions/2-KthSmallesrElmt.cpp @@ -0,0 +1,42 @@ +#include +using namespace std; +template + +class BinaryTreeNode +{ +public : + T data; + BinaryTreeNode *left; + BinaryTreeNode *right; + + BinaryTreeNode(T data) { + this -> data = data; + left = NULL; + right = NULL; + } +}; + +int solve(BinaryTreeNode* root, int &k){ + if(root == NULL){ + return -1; + } + int left = solve(root -> left,k); + if( k == 0){ + return left; + } + k--; + // cout << root -> data << " " << k << endl; + if( k == 0){ + return root->data; + } + int right = solve(root->right,k); + if( k == 0){ + return right; + } + return -1; +} + +int kthSmallest(BinaryTreeNode* root, int k) { + + return solve(root,k); +} \ No newline at end of file diff --git a/Lecture070-BST Questions/3-Lca.cpp b/Lecture070-BST Questions/3-Lca.cpp new file mode 100644 index 00000000..b6948272 --- /dev/null +++ b/Lecture070-BST Questions/3-Lca.cpp @@ -0,0 +1,38 @@ +#include +using namespace std; + +class TreeNode +{ +public: + int data; + TreeNode *left, *right; + TreeNode() : data(0), left(NULL), right(NULL) {} + TreeNode(int x) : data(x), left(NULL), right(NULL) {} + TreeNode(int x, TreeNode *left, TreeNode *right) : data(x), left(left), right(right) {} +}; + + +TreeNode *find(TreeNode *root, TreeNode *p, TreeNode *q){ + if(root == NULL){ + return NULL; + } + if(p->data <= root->data && q -> data >= root->data){ + return root; + } + if(p->data > root -> data){ + return find(root->right, p, q); + } + return find(root->left, p, q); +} + + +TreeNode *LCAinaBST(TreeNode *root, TreeNode *p, TreeNode *q) +{ + if(p -> data < q -> data){ + return find(root,p,q); + } + if(p -> data < q -> data){ + return find(root,p,q); + } + return root; +} \ No newline at end of file diff --git a/Lecture070-BST Questions/4-Presucc.cpp b/Lecture070-BST Questions/4-Presucc.cpp new file mode 100644 index 00000000..acb83834 --- /dev/null +++ b/Lecture070-BST Questions/4-Presucc.cpp @@ -0,0 +1,65 @@ +#include +#include +using namespace std; + + class TreeNode +{ +public: + int data; + TreeNode *left, *right; + TreeNode() : data(0), left(NULL), right(NULL) {} + TreeNode(int x) : data(x), left(NULL), right(NULL) {} + TreeNode(int x, TreeNode *left, TreeNode *right) : data(x), left(left), right(right) {} +}; + + + + +pair predecessorSuccessor(TreeNode *root, int key) +{ + vector ans; + TreeNode* q = root; + int i; + ans.push_back(-1); + while(q != NULL){ + if(q -> left == NULL){ + if (q->data <= key) { + i = ans.size(); + } + ans.push_back(q -> data); + // cout << q -> data << " "; + q = q-> right; + } + else{ + TreeNode* temp = q -> left; + while(temp -> right != NULL && temp -> right != q){ + temp = temp -> right; + } + if(temp -> right == NULL){ + temp -> right = q; + q = q -> left; + } + else{ + if (q->data <= key) { + i = ans.size(); + } + // ans.push_back(temp->data); + // cout << temp -> data << " "; + // cout << q -> data << " "; + ans.push_back(q->data); + q = q -> right; + temp->right = NULL; + } + } + } + ans.push_back(-1); + // for( int i = 0; i < ans.size(); i++) + // cout << ans [i] << " "; + + // cout<< endl << i << endl; + if(ans[i] == key) + return{ans[i-1],ans[i+1]}; + + return{ans[i],ans[i+1]}; + +} \ No newline at end of file diff --git a/Lecture071- BST 3/1-TwoSum.cpp b/Lecture071- BST 3/1-TwoSum.cpp new file mode 100644 index 00000000..66708fa8 --- /dev/null +++ b/Lecture071- BST 3/1-TwoSum.cpp @@ -0,0 +1,41 @@ +#include +using namespace std; +template +class BinaryTreeNode { + public : + T data; + BinaryTreeNode *left; + BinaryTreeNode *right; + + BinaryTreeNode(T data) { + this -> data = data; + left = NULL; + right = NULL; + } + +}; + +void Inorder(BinaryTreeNode* root, vector &storage){ + if( root == NULL){ + return; + } + Inorder(root->left,storage); + storage.push_back(root->data); + Inorder(root->right,storage); +} + + +bool twoSumInBST(BinaryTreeNode* root, int target) { + vector storage; + Inorder(root,storage); + int i = 0, j = storage.size()-1; + while(i < j){ + if(storage[i] + storage[j] == target) + return true; + else if(storage[i] + storage[j] < target ) + i++; + else + j--; + } + return 0; +} \ No newline at end of file diff --git a/Lecture071- BST 3/2-FlattenABst.cpp b/Lecture071- BST 3/2-FlattenABst.cpp new file mode 100644 index 00000000..e69de29b diff --git a/Lecture071- BST 3/3-NormalToBalanced.cpp b/Lecture071- BST 3/3-NormalToBalanced.cpp new file mode 100644 index 00000000..e69de29b diff --git a/Lecture071- BST 3/4-BSTfromPreorder.cpp b/Lecture071- BST 3/4-BSTfromPreorder.cpp new file mode 100644 index 00000000..b759efe9 --- /dev/null +++ b/Lecture071- BST 3/4-BSTfromPreorder.cpp @@ -0,0 +1,48 @@ +#include +using namespace std; +template + + class BinaryTreeNode { + public : + T data; + BinaryTreeNode *left; + BinaryTreeNode *right; + + BinaryTreeNode(T data) { + this -> data = data; + left = NULL; + right = NULL; + } + + ~BinaryTreeNode() { + if (left){ + delete left; + } + if (right){ + delete right; + } + } + }; + + +BinaryTreeNode* solve(vector &pre,int mini, int maxi, int &i){ + // cout << 1 ; + if(i >= pre.size()){ + return NULL; + } + if(pre[i] > maxi || pre[i] < mini) + return NULL; + + + BinaryTreeNode* root = new BinaryTreeNode(pre[i++]); + root -> left = solve(pre,mini,root -> data,i); + root -> right = solve(pre,root -> data,maxi,i); + return root; + +} + +BinaryTreeNode* preorderToBST(vector &preorder) { + + int maxi = INT_MAX, mini = INT_MIN,i=0; + return solve(preorder,mini,maxi,i); +} \ No newline at end of file