Skip to content

Commit 092aa1d

Browse files
committed
TREE NOTES 9 AUG
1 parent 9ea20c1 commit 092aa1d

27 files changed

+1166
-0
lines changed

.vscode/c_cpp_properties.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"configurations": [
3+
{
4+
"name": "windows-gcc-x86",
5+
"includePath": [
6+
"${workspaceFolder}/**"
7+
],
8+
"compilerPath": "C:/MinGW/bin/gcc.exe",
9+
"cStandard": "${default}",
10+
"cppStandard": "${default}",
11+
"intelliSenseMode": "windows-gcc-x86",
12+
"compilerArgs": [
13+
""
14+
]
15+
}
16+
],
17+
"version": 4
18+
}

.vscode/launch.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"name": "C/C++ Runner: Debug Session",
6+
"type": "cppdbg",
7+
"request": "launch",
8+
"args": [],
9+
"stopAtEntry": false,
10+
"externalConsole": true,
11+
"cwd": "c:/Users/Rishi Verma/OneDrive/Desktop/cplusplus/Tree/tree-notes",
12+
"program": "c:/Users/Rishi Verma/OneDrive/Desktop/cplusplus/Tree/tree-notes/build/Debug/outDebug",
13+
"MIMode": "gdb",
14+
"miDebuggerPath": "gdb",
15+
"setupCommands": [
16+
{
17+
"description": "Enable pretty-printing for gdb",
18+
"text": "-enable-pretty-printing",
19+
"ignoreFailures": true
20+
}
21+
]
22+
}
23+
]
24+
}

.vscode/settings.json

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
{
2+
"C_Cpp_Runner.cCompilerPath": "gcc",
3+
"C_Cpp_Runner.cppCompilerPath": "g++",
4+
"C_Cpp_Runner.debuggerPath": "gdb",
5+
"C_Cpp_Runner.cStandard": "",
6+
"C_Cpp_Runner.cppStandard": "",
7+
"C_Cpp_Runner.msvcBatchPath": "C:/Program Files/Microsoft Visual Studio/VR_NR/Community/VC/Auxiliary/Build/vcvarsall.bat",
8+
"C_Cpp_Runner.useMsvc": false,
9+
"C_Cpp_Runner.warnings": [
10+
"-Wall",
11+
"-Wextra",
12+
"-Wpedantic",
13+
"-Wshadow",
14+
"-Wformat=2",
15+
"-Wcast-align",
16+
"-Wconversion",
17+
"-Wsign-conversion",
18+
"-Wnull-dereference"
19+
],
20+
"C_Cpp_Runner.msvcWarnings": [
21+
"/W4",
22+
"/permissive-",
23+
"/w14242",
24+
"/w14287",
25+
"/w14296",
26+
"/w14311",
27+
"/w14826",
28+
"/w44062",
29+
"/w44242",
30+
"/w14905",
31+
"/w14906",
32+
"/w14263",
33+
"/w44265",
34+
"/w14928"
35+
],
36+
"C_Cpp_Runner.enableWarnings": true,
37+
"C_Cpp_Runner.warningsAsError": false,
38+
"C_Cpp_Runner.compilerArgs": [],
39+
"C_Cpp_Runner.linkerArgs": [],
40+
"C_Cpp_Runner.includePaths": [],
41+
"C_Cpp_Runner.includeSearch": [
42+
"*",
43+
"**/*"
44+
],
45+
"C_Cpp_Runner.excludeSearch": [
46+
"**/build",
47+
"**/build/**",
48+
"**/.*",
49+
"**/.*/**",
50+
"**/.vscode",
51+
"**/.vscode/**"
52+
],
53+
"C_Cpp_Runner.useAddressSanitizer": false,
54+
"C_Cpp_Runner.useUndefinedSanitizer": false,
55+
"C_Cpp_Runner.useLeakSanitizer": false,
56+
"C_Cpp_Runner.showCompilationTime": false,
57+
"C_Cpp_Runner.useLinkTimeOptimization": false,
58+
"C_Cpp_Runner.msvcSecureNoWarnings": false
59+
}
File renamed without changes.
File renamed without changes.
File renamed without changes.

16DiameterofBinaryTree.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,20 @@ struct TreeNode
1414
}
1515

1616
};
17+
int diameter = 0;
18+
int calculateHeight(TreeNode* root){
1719

20+
if(root==NULL){
21+
return 0;
22+
}
23+
24+
int lh = calculateHeight(root->left);
25+
int rh = calculateHeight(root->right);
26+
27+
diameter = max(diameter,lh + rh);
28+
29+
return 1 + max(lh,rh);
30+
}
1831

1932
int main(){
2033
struct TreeNode* root = new TreeNode(2);

17MaximumPathSum.cpp

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
4+
//To find the diameter of a binary tree, we can think of every node as a potential `Curving Point` of the path along which we find the sum. The maximum sum of a path through a turning point (like a curve) can be found by adding the maximum sum achievable in the left subtree, the right subtree, and the value of the turning point.
5+
6+
struct TreeNode
7+
{
8+
int data;
9+
struct TreeNode* left;
10+
struct TreeNode* right;
11+
12+
TreeNode(int val)
13+
{
14+
data = val;
15+
left = NULL;
16+
right = NULL;
17+
}
18+
19+
};
20+
21+
int maxi = INT_MIN;
22+
23+
int findMaxPath(TreeNode* root,int maxi){
24+
if(root==NULL){
25+
return 0;
26+
}
27+
28+
int leftMaxPath = max(0,findMaxPath(root->left,maxi));
29+
int rightMaxPath = max(0,findMaxPath(root->right,maxi));
30+
31+
maxi = max(maxi,leftMaxPath+rightMaxPath + root->data);
32+
33+
return max(leftMaxPath,rightMaxPath) + root->data;
34+
}
35+
36+
37+
int main(){
38+
struct TreeNode* root = new TreeNode(2);
39+
root->left = new TreeNode(5);
40+
root->left->left = new TreeNode(4);
41+
root->left->left->left = new TreeNode(3);
42+
root->left->left->right = new TreeNode(2);
43+
root->left->right = new TreeNode(5);
44+
root->right = new TreeNode(7);
45+
root->right->left = new TreeNode(9);
46+
root->right->left->right = new TreeNode(2);
47+
root->right->left->right->right = new TreeNode(4);
48+
root->right->left->right->left = new TreeNode(1);
49+
root->right->left->left = new TreeNode(3);
50+
root->right->right = new TreeNode(7);
51+
52+
53+
54+
}

18TwoTreeIdentical.cpp

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
struct TreeNode
4+
{
5+
int data;
6+
struct TreeNode* left;
7+
struct TreeNode* right;
8+
9+
TreeNode(int val)
10+
{
11+
data = val;
12+
left = NULL;
13+
right = NULL;
14+
}
15+
16+
};
17+
18+
bool equalTree(TreeNode* p,TreeNode* q){
19+
if(p==NULL || q==NULL){
20+
return (p==q);
21+
}
22+
23+
24+
return (p->data==q->data)&&(equalTree(p->left,q->left))&&(equalTree(p->right,q->right));
25+
}
26+
27+
int main(){
28+
struct TreeNode* root = new TreeNode(2);
29+
root->left = new TreeNode(5);
30+
root->left->left = new TreeNode(4);
31+
root->left->left->left = new TreeNode(3);
32+
root->left->left->right = new TreeNode(2);
33+
root->left->right = new TreeNode(5);
34+
root->right = new TreeNode(7);
35+
root->right->left = new TreeNode(9);
36+
root->right->left->right = new TreeNode(2);
37+
root->right->left->right->right = new TreeNode(4);
38+
root->right->left->right->left = new TreeNode(1);
39+
root->right->left->left = new TreeNode(3);
40+
root->right->right = new TreeNode(7);
41+
42+
43+
44+
}

19ZigZagTraversal.cpp

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#include <bits/stdc++.h>
2+
using namespace std;
3+
struct TreeNode
4+
{
5+
int data;
6+
struct TreeNode* left;
7+
struct TreeNode* right;
8+
9+
TreeNode(int val)
10+
{
11+
data = val;
12+
left = NULL;
13+
right = NULL;
14+
}
15+
16+
};
17+
vector<vector<int>> zigZagTraversal(TreeNode* root){
18+
vector<vector<int>> result;
19+
20+
if(root==NULL){
21+
return result;
22+
}
23+
24+
queue<TreeNode*>q;
25+
bool leftToRight = true;
26+
q.push(root);
27+
while(!q.empty()){
28+
int size = q.size();
29+
vector<int> temp(size);
30+
31+
for(int i=0;i<size;i++){
32+
TreeNode* node = q.front();
33+
q.pop();
34+
35+
36+
//this is the only change in the level Order Traversal and zig Zag order Traversal
37+
38+
int index = leftToRight ? i : (size-i-1);
39+
40+
temp[index] = node->data;
41+
42+
if(node->left) q.push(node->left);
43+
if(node->right) q.push(node->right);
44+
45+
46+
}
47+
leftToRight = !leftToRight;
48+
result.push_back(temp);
49+
}
50+
return result;
51+
}
52+
int main(){
53+
struct TreeNode* root = new TreeNode(2);
54+
root->left = new TreeNode(5);
55+
root->left->left = new TreeNode(4);
56+
root->left->left->left = new TreeNode(3);
57+
root->left->left->right = new TreeNode(2);
58+
root->left->right = new TreeNode(5);
59+
root->right = new TreeNode(7);
60+
root->right->left = new TreeNode(9);
61+
root->right->left->right = new TreeNode(2);
62+
root->right->left->right->right = new TreeNode(4);
63+
root->right->left->right->left = new TreeNode(1);
64+
root->right->left->left = new TreeNode(3);
65+
root->right->right = new TreeNode(7);
66+
67+
68+
cout<<zigZagTraversal(root).size()<<endl;
69+
for(auto &val: zigZagTraversal(root)){
70+
for(auto &ele : val){
71+
cout<<ele<<" ";
72+
}
73+
cout<<endl;
74+
}
75+
76+
77+
78+
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy