Skip to content

Commit 92506ca

Browse files
HackerRank --> Data Structure --> Binary Search Tree
1 parent 0ec64e3 commit 92506ca

File tree

1 file changed

+165
-0
lines changed

1 file changed

+165
-0
lines changed
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 1,
6+
"metadata": {},
7+
"outputs": [
8+
{
9+
"name": "stdin",
10+
"output_type": "stream",
11+
"text": [
12+
" 7\n",
13+
" 50 30 20 40 70 60 80\n"
14+
]
15+
},
16+
{
17+
"name": "stdout",
18+
"output_type": "stream",
19+
"text": [
20+
"20 30 40 50 60 70 80 "
21+
]
22+
}
23+
],
24+
"source": [
25+
"class Node:\n",
26+
" def __init__(self,key):\n",
27+
" self.right=None\n",
28+
" self.left=None\n",
29+
" self.val=key\n",
30+
"\n",
31+
"def insert(root,node):\n",
32+
" if root is None:\n",
33+
" root=node\n",
34+
" else:\n",
35+
" if root.val<node.val:\n",
36+
" if root.right is None:\n",
37+
" root.right=node\n",
38+
" else:\n",
39+
" insert(root.right,node)\n",
40+
" else:\n",
41+
" if root.left is None:\n",
42+
" root.left=node\n",
43+
" else:\n",
44+
" insert(root.left,node)\n",
45+
"\n",
46+
"def inorder(root):\n",
47+
" if root:\n",
48+
" inorder(root.left)\n",
49+
" print(root.val,end=' ')\n",
50+
" inorder(root.right)\n",
51+
"\n",
52+
"n=int(input())\n",
53+
"a=list(map(int,input().split()))\n",
54+
"for i in range(n):\n",
55+
" if i==0:\n",
56+
" r=Node(a[i])\n",
57+
" else:\n",
58+
" insert(r,Node(a[i]))\n",
59+
"inorder(r)"
60+
]
61+
},
62+
{
63+
"cell_type": "code",
64+
"execution_count": 2,
65+
"metadata": {},
66+
"outputs": [],
67+
"source": [
68+
"# maxHeight of Binary Search Tree\n",
69+
"def getHeight(root):\n",
70+
" if root:\n",
71+
" leftDepth = getHeight(root.left)\n",
72+
" rightDepth = getHeight(root.right)\n",
73+
" return max(leftDepth,rightDepth) + 1\n",
74+
" else:\n",
75+
" return -1"
76+
]
77+
},
78+
{
79+
"cell_type": "code",
80+
"execution_count": 3,
81+
"metadata": {},
82+
"outputs": [
83+
{
84+
"data": {
85+
"text/plain": [
86+
"2"
87+
]
88+
},
89+
"execution_count": 3,
90+
"metadata": {},
91+
"output_type": "execute_result"
92+
}
93+
],
94+
"source": [
95+
"getHeight(r)"
96+
]
97+
},
98+
{
99+
"cell_type": "code",
100+
"execution_count": 8,
101+
"metadata": {},
102+
"outputs": [],
103+
"source": [
104+
"# level order traversal of Binary Search Tree\n",
105+
"def level_order(root):\n",
106+
" h=getHeight(r)\n",
107+
" for i in range(1,h+2):\n",
108+
" level_order_given(root,i)\n",
109+
"def level_order_given(root,level):\n",
110+
" if root is None:\n",
111+
" return\n",
112+
" if level==1:\n",
113+
" print(root.val,end=' ')\n",
114+
" else:\n",
115+
" level_order_given(root.left,level-1)\n",
116+
" level_order_given(root.right,level-1)"
117+
]
118+
},
119+
{
120+
"cell_type": "code",
121+
"execution_count": 9,
122+
"metadata": {},
123+
"outputs": [
124+
{
125+
"name": "stdout",
126+
"output_type": "stream",
127+
"text": [
128+
"50 30 70 20 40 60 80 "
129+
]
130+
}
131+
],
132+
"source": [
133+
"level_order(r)"
134+
]
135+
},
136+
{
137+
"cell_type": "code",
138+
"execution_count": null,
139+
"metadata": {},
140+
"outputs": [],
141+
"source": []
142+
}
143+
],
144+
"metadata": {
145+
"kernelspec": {
146+
"display_name": "Python 3",
147+
"language": "python",
148+
"name": "python3"
149+
},
150+
"language_info": {
151+
"codemirror_mode": {
152+
"name": "ipython",
153+
"version": 3
154+
},
155+
"file_extension": ".py",
156+
"mimetype": "text/x-python",
157+
"name": "python",
158+
"nbconvert_exporter": "python",
159+
"pygments_lexer": "ipython3",
160+
"version": "3.8.2"
161+
}
162+
},
163+
"nbformat": 4,
164+
"nbformat_minor": 4
165+
}

0 commit comments

Comments
 (0)