Oct
NOV
Dec
13
2019
2020
2021
About this capture
Organization:
Internet Archive
Focused crawls are collections of frequently-updated webcrawl data from narrow (as opposed to broad or wide) web crawls, often focused on a single domain or subdomain.
T h e W a y b a c k M a c h i n e - h t t p : / / w e b . a r c h i v e . o r g / w e b / 2 0 2 0 1 1 1 3 1 5 0 7 4 8 / h t t p s : / / g i t h u b . c o m / j o o w a n i / b i n a r y t r e e
S k i p t o c o n t e n t
/ ; r e f _ c t a : S i g n u p ; r e f _ l o c : h e a d e r l o g g e d o u t " >
S i g n up
●
F e a t u r e s →
● C o d e r e v i e w
● P r o j e c t m a n a g e m e n t
● I n t e g r a t i o n s
● A c t i o n s
● P a c k a g e s
● S e c u r i t y
● T e a m m a n a g e m e n t
● H o s t i n g
● M o b i l e
● C u s t o m e r s t o r i e s →
● S e c u r i t y →
●
●
●
● E x p l o r e G i t H u b →
L e a r n & c o n t r i b u t e
● T o p i c s
● C o l l e c t i o n s
● T r e n d i n g
● L e a r n i n g L a b
● O p e n s o u r c e g u i d e s
C o n n e c t w i t h o t h e r s
● E v e n t s
● C o m m u n i t y f o r u m
● G i t H u b E d u c a t i o n
● G i t H u b S t a r s p r o g r a m
●
●
P l a n s →
● C o m p a r e p l a n s
● C o n t a c t S a l e s
● N o n p r o f i t →
● E d u c a t i o n →
In this repository
All GitHub
↵
Jump to
↵
No suggested jump to results
{ { m e s s a g e } }
●
W a t c h
45
●
S t a r
1 . 6 k
●
F o r k
1 3 5
P y t h o n L i b r a r y f o r S t u d y i n g B i n a r y T r e e s
b i n a r y t r e e . r e a d t h e d o c s . i o
M I T L i c e n s e
1 . 6 k
s t a r s
1 3 5
f o r k s
S t a r
W a t c h
●
C o d e
●
I s s u e s
2
●
P u l l r e q u e s t s
0
●
A c t i o n s
●
P r o j e c t s
0
●
S e c u r i t y
●
I n s i g h t s
M o r e
●
C o d e
●
I s s u e s
●
P u l l r e q u e s t s
●
A c t i o n s
●
P r o j e c t s
●
S e c u r i t y
●
I n s i g h t s
D i s m i s s
J o i n G i t H u b t o d a y
G i t H u b i s h o m e t o o v e r 5 0 m i l l i o n d e v e l o p e r s w o r k i n g t o g e t h e r t o h o s t a n d r e v i e w c o d e , m a n a g e p r o j e c t s , a n d b u i l d s o f t w a r e t o g e t h e r .
S i g n u p
G i t H u b i s w h e r e t h e w o r l d b u i l d s s o f t w a r e
M i l l i o n s o f d e v e l o p e r s a n d c o m p a n i e s b u i l d , s h i p , a n d m a i n t a i n t h e i r s o f t w a r e o n G i t H u b — t h e l a r g e s t a n d m o s t a d v a n c e d d e v e l o p m e n t p l a t f o r m i n t h e w o r l d .
S i g n u p f o r f r e e
D i s m i s s
2
b r a n c h e s
11
t a g s
G o t o f i l e
C o d e
C l o n e
U s e G i t o r c h e c k o u t w i t h S V N u s i n g t h e w e b U R L .
W o r k f a s t w i t h o u r o f f i c i a l C L I .
L e a r n m o r e .
●
O p e n w i t h G i t H u b D e s k t o p
●
D o w n l o a d Z I P
L a u n c h i n g G i t H u b D e s k t o p
I f n o t h i n g h a p p e n s , d o w n l o a d G i t H u b D e s k t o p a n d t r y a g a i n .
G o b a c k
L a u n c h i n g G i t H u b D e s k t o p
I f n o t h i n g h a p p e n s , d o w n l o a d G i t H u b D e s k t o p a n d t r y a g a i n .
G o b a c k
L a u n c h i n g X c o d e
I f n o t h i n g h a p p e n s , d o w n l o a d X c o d e a n d t r y a g a i n .
G o b a c k
L a u n c h i n g V i s u a l S t u d i o
I f n o t h i n g h a p p e n s , d o w n l o a d t h e G i t H u b e x t e n s i o n f o r V i s u a l S t u d i o a n d t r y a g a i n .
G o b a c k
L a t e s t c o m m i t
j o o w a n i
I m p r o v e d o c u m e n t a t i o n a n d b u i l d f i l e s
…
2 2 f c 4 b 7
J u n 1 2 , 2 0 2 0
I m p r o v e d o c u m e n t a t i o n a n d b u i l d f i l e s
2 2 f c 4 b 7
G i t s t a t s
●
39
c o m m i t s
F i l e s
P e r m a l i n k
F a i l e d t o l o a d l a t e s t c o m m i t i n f o r m a t i o n .
T y p e
N a m e
L a t e s t c o m m i t m e s s a g e
C o m m i t t i m e
b i n a r y t r e e
d o c s
t e s t s
. g i t i g n o r e
. t r a v i s . y m l
L I C E N S E
M A N I F E S T . i n
R E A D M E . r s t
d e m o . g i f
p y t e s t . i n i
s e t u p . c f g
s e t u p . p y
V i e w c o d e
R E A D M E . r s t
B i n a r y t r e e : P y t h o n L i b r a r y f o r S t u d y i n g B i n a r y T r e e s
I n t r o d u c t i o n
A r e y o u s t u d y i n g b i n a r y t r e e s f o r y o u r n e x t e x a m , a s s i g n m e n t o r t e c h n i c a l i n t e r v i e w ?
B i n a r y t r e e i s a P y t h o n l i b r a r y w h i c h p r o v i d e s a s i m p l e A P I t o g e n e r a t e ,
v i s u a l i z e , i n s p e c t a n d m a n i p u l a t e b i n a r y t r e e s . I t a l l o w s y o u t o s k i p t h e
t e d i o u s w o r k o f s e t t i n g u p t e s t d a t a , a n d d i v e s t r a i g h t i n t o p r a c t i s i n g y o u r
a l g o r i t h m s . H e a p s a n d B S T s ( b i n a r y s e a r c h t r e e s ) a r e a l s o s u p p o r t e d .
R e q u i r e m e n t s
● P y t h o n 2 . 7 + o r 3 . 4 +
I n s t a l l a t i o n
T o i n s t a l l a s t a b l e v e r s i o n f r o m P y P i :
~ $ pip install binarytree
T o i n s t a l l t h e l a t e s t v e r s i o n d i r e c t l y f r o m G i t H u b :
~ $ pip install -e git+git@github.com:joowani/binarytree.git@master#egg=binarytree
Y o u m a y n e e d t o u s e s u d o d e p e n d i n g o n y o u r e n v i r o n m e n t .
G e t t i n g S t a r t e d
B y d e f a u l t , b i n a r y t r e e u s e s t h e f o l l o w i n g c l a s s t o r e p r e s e n t a n o d e :
class Node (object ):
def __init__ (self , value , left = None , right = None ):
self .val = value # The node value
self .left = left # Left child
self .right = right # Right child
G e n e r a t e a n d p r e t t y - p r i n t v a r i o u s t y p e s o f b i n a r y t r e e s :
>> > from binarytree import tree , bst , heap
>> >
>> > # Generate a random binary tree and return its root node
>> > my_tree = tree (height = 3 , is_perfect = False )
>> >
>> > # Generate a random BST and return its root node
>> > my_bst = bst (height = 3 , is_perfect = True )
>> >
>> > # Generate a random max heap and return its root node
>> > my_heap = heap (height = 3 , is_max = True , is_perfect = False )
>> >
>> > # Pretty-print the trees in stdout
>> > print (my_tree )
#
# _______1_____
# / \
# 4__ ___3
# / \ / \
# 0 9 13 14
# / \ \
# 7 10 2
#
>> > print (my_bst )
#
# ______7_______
# / \
# __3__ ___11___
# / \ / \
# 1 5 9 _13
# / \ / \ / \ / \
# 0 2 4 6 8 10 12 14
#
>> > print (my_heap )
#
# _____14__
# / \
# ____13__ 9
# / \ / \
# 12 7 3 8
# / \ /
# 0 10 6
#
U s e t h e b i n a r y t r e e . N o d e c l a s s t o b u i l d y o u r o w n t r e e s :
>> > from binarytree import Node
>> >
>> > root = Node (1 )
>> > root .left = Node (2 )
>> > root .right = Node (3 )
>> > root .left .right = Node (4 )
>> >
>> > print (root )
#
# __1
# / \
# 2 3
# \
# 4
#
I n s p e c t t r e e p r o p e r t i e s :
>> > from binarytree import Node
>> >
>> > root = Node (1 )
>> > root .left = Node (2 )
>> > root .right = Node (3 )
>> > root .left .left = Node (4 )
>> > root .left .right = Node (5 )
>> >
>> > print (root )
#
# __1
# / \
# 2 3
# / \
# 4 5
#
>> > root .height
2
>> > root .is_balanced
True
>> > root .is_bst
False
>> > root .is_complete
True
>> > root .is_max_heap
False
>> > root .is_min_heap
True
>> > root .is_perfect
False
>> > root .is_strict
True
>> > root .leaf_count
3
>> > root .max_leaf_depth
2
>> > root .max_node_value
5
>> > root .min_leaf_depth
1
>> > root .min_node_value
1
>> > root .size
5
>> > root .properties # To see all at once:
{'height' : 2 ,
'is_balanced' : True ,
'is_bst' : False ,
'is_complete' : True ,
'is_max_heap' : False ,
'is_min_heap' : True ,
'is_perfect' : False ,
'is_strict' : True ,
'leaf_count' : 3 ,
'max_leaf_depth' : 2 ,
'max_node_value' : 5 ,
'min_leaf_depth' : 1 ,
'min_node_value' : 1 ,
'size' : 5 }
>> > root .leaves
[Node (3 ), Node (4 ), Node (5 )]
>> > root .levels
[[Node (1 )], [Node (2 ), Node (3 )], [Node (4 ), Node (5 )]]
U s e l e v e l - o r d e r ( b r e a d t h - f i r s t ) i n d e x e s t o m a n i p u l a t e n o d e s :
>> > from binarytree import Node
>> >
>> > root = Node (1 ) # index: 0, value: 1
>> > root .left = Node (2 ) # index: 1, value: 2
>> > root .right = Node (3 ) # index: 2, value: 3
>> > root .left .right = Node (4 ) # index: 4, value: 4
>> > root .left .right .left = Node (5 ) # index: 9, value: 5
>> >
>> > print (root )
#
# ____1
# / \
# 2__ 3
# \
# 4
# /
# 5
#
>> > # Use binarytree.Node.pprint instead of print to display indexes
>> > root .pprint (index = True )
#
# _________0-1_
# / \
# 1-2_____ 2-3
# \
# _4-4
# /
# 9-5
#
>> > # Return the node/subtree at index 9
>> > root [9 ]
Node (5 )
>> > # Replace the node/subtree at index 4
>> > root [4 ] = Node (6 , left = Node (7 ), right = Node (8 ))
>> > root .pprint (index = True )
#
# ______________0-1_
# / \
# 1-2_____ 2-3
# \
# _4-6_
# / \
# 9-7 10-8
#
>> > # Delete the node/subtree at index 1
>> > del root [1 ]
>> > root .pprint (index = True )
#
# 0-1_
# \
# 2-3
T r a v e r s e t h e t r e e s u s i n g d i f f e r e n t a l g o r i t h m s :
>> > from binarytree import Node
>> >
>> > root = Node (1 )
>> > root .left = Node (2 )
>> > root .right = Node (3 )
>> > root .left .left = Node (4 )
>> > root .left .right = Node (5 )
>> >
>> > print (root )
#
# __1
# / \
# 2 3
# / \
# 4 5
#
>> > root .inorder
[Node (4 ), Node (2 ), Node (5 ), Node (1 ), Node (3 )]
>> > root .preorder
[Node (1 ), Node (2 ), Node (4 ), Node (5 ), Node (3 )]
>> > root .postorder
[Node (4 ), Node (5 ), Node (2 ), Node (3 ), Node (1 )]
>> > root .levelorder
[Node (1 ), Node (2 ), Node (3 ), Node (4 ), Node (5 )]
>> > list (root ) # Equivalent to root.levelorder
[Node (1 ), Node (2 ), Node (3 ), Node (4 ), Node (5 )]
L i s t r e p r e s e n t a t i o n s a r e a l s o s u p p o r t e d :
>> > from binarytree import build
>> >
>> > # Build a tree from list representation
>> > values = [7 , 3 , 2 , 6 , 9 , None , 1 , 5 , 8 ]
>> > root = build (values )
>> > print (root )
#
# __7
# / \
# __3 2
# / \ \
# 6 9 1
# / \
# 5 8
#
>> > # Convert the tree back to list representation
>> > root .values
[7 , 3 , 2 , 6 , 9 , None , 1 , 5 , 8 ]
C h e c k o u t t h e d o c u m e n t a t i o n f o r m o r e d e t a i l s !
C o n t r i b u t i n g
P l e a s e h a v e a l o o k a t t h i s p a g e b e f o r e s u b m i t t i n g a p u l l r e q u e s t . T h a n k s !
A b o u t
P y t h o n L i b r a r y f o r S t u d y i n g B i n a r y T r e e s
b i n a r y t r e e . r e a d t h e d o c s . i o
T o p i c s
p y t h o n
p y t h o n 3
p y t h o n 2
p y t h o n - 3
p y t h o n - 2
p y t h o n - l i b r a r y
b i n a r y - t r e e s
b i n a r y - t r e e
i n t e r v i e w - p r a c t i c e
i n t e r v i e w
l e a r n i n g
p r a c t i s e
a l g o r i t h m
d a t a - s t r u c t u r e s
d a t a - s t r u c t u r e
h e a p
h e a p s
b s t
b i n a r y - s e a r c h - t r e e
R e s o u r c e s
R e a d m e
L i c e n s e
M I T L i c e n s e
5 . 1 . 0
L a t e s t
J u n 2 , 2 0 2 0
+ 1 0 r e l e a s e s
N o p a c k a g e s p u b l i s h e d
+ 8 4
L a n g u a g e s
●
P y t h o n
1 0 0 . 0 %
● © 2 0 2 0 G i t H u b , I n c .
● T e r m s
● P r i v a c y
●
C o o k i e P r e f e r e n c e s
● S e c u r i t y
● S t a t u s
● H e l p
● C o n t a c t G i t H u b
● P r i c i n g
● A P I
● T r a i n i n g
● B l o g
● A b o u t
Y o u c a n ’ t p e r f o r m t h a t a c t i o n a t t h i s t i m e .
Y o u s i g n e d i n w i t h a n o t h e r t a b o r w i n d o w . R e l o a d t o r e f r e s h y o u r s e s s i o n .
Y o u s i g n e d o u t i n a n o t h e r t a b o r w i n d o w . R e l o a d t o r e f r e s h y o u r s e s s i o n .
W e u s e o p t i o n a l t h i r d - p a r t y a n a l y t i c s c o o k i e s t o u n d e r s t a n d h o w y o u u s e G i t H u b . c o m s o w e c a n b u i l d b e t t e r p r o d u c t s .
L e a r n m o r e .
A c c e p t
R e j e c t
W e u s e o p t i o n a l t h i r d - p a r t y a n a l y t i c s c o o k i e s t o u n d e r s t a n d h o w y o u u s e G i t H u b . c o m s o w e c a n b u i l d b e t t e r p r o d u c t s .
Y o u c a n a l w a y s u p d a t e y o u r s e l e c t i o n b y c l i c k i n g C o o k i e P r e f e r e n c e s a t t h e b o t t o m o f t h e p a g e .
F o r m o r e i n f o r m a t i o n , s e e o u r P r i v a c y S t a t e m e n t .
E s s e n t i a l c o o k i e s
W e u s e e s s e n t i a l c o o k i e s t o p e r f o r m e s s e n t i a l w e b s i t e f u n c t i o n s , e . g . t h e y ' r e u s e d t o l o g y o u i n .
L e a r n m o r e
A l w a y s a c t i v e
A n a l y t i c s c o o k i e s
W e u s e a n a l y t i c s c o o k i e s t o u n d e r s t a n d h o w y o u u s e o u r w e b s i t e s s o w e c a n m a k e t h e m b e t t e r , e . g . t h e y ' r e u s e d t o g a t h e r i n f o r m a t i o n a b o u t t h e p a g e s y o u v i s i t a n d h o w m a n y c l i c k s y o u n e e d t o a c c o m p l i s h a t a s k .
L e a r n m o r e
A c c e p t
R e j e c t
S a v e p r e f e r e n c e s