Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(ÓþÂã�) �û´¡¤¢
(free tree "¢�¥� ´¡¤¢') ¤ø¢ öøÀ� ø À��Ýû é�Âð ×þ.´¨� ñ�þ n− 1 ý�¤�¢ �fÖ�ì¢ §�¤ n �� üµ¡¤¢ ß��� ×þ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 1 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
E = V − 1 Ýþ¤�¢ ,Àª�� (V ) �û§�b¤ ¢�Àã� (E) �ûñ�þ ¢�Àã� Âð� :Ýó,E = 0 �î ´¨� üúþÀ� n = 1 ý�Â� :�ÂÖµ¨� �� :��±��
E = k − 1 Ýþ¤�¢ V = k ý�Â� :DZ�ÂÖµ¨� Âê
V = k + 1 Âð� :DZ�ÂÖµ¨� ÝØ�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 2 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
·î�À� ý¢ø¤ø ��¤¢ �îý¤�Ï�� Ý�û¢ ¤�Âì ´ú� ¢�¥� ´¡¤¢ ×þ ý�ûñ�þ ýø¤ Â� Âð�.Ý�þ�ð §��¤ ß�� "ýÀ÷¥Âê ¤À�' ý�Î��¤ �� ´¡¤¢ ×þ ö� �� ,Àª�� ×þ¢¤�¢ ¤À� ×þ �fÖ�ì¢ �Èþ¤ ¥� Â�è ÂÊ�ä Âû •É¿Èõ�÷ ö�À÷¥Âê ¢�Àã� •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 3 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
üµÈð¥�� �¤��¬ �� ´¡¤¢ ÓþÂã�
r
r1 r2 rk
T1 T2 Tk
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 4 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
.´¨� ´¡¤¢ ×þ üþ�ú���� ùÂð ×þ •ý�Èþ¤ �� �¤ T Â�ï¤Ã� ´¡¤¢ ×þ rk�� r1 ý�û�Èþ¤ �� Tk �� T1 ÛÖµÆõ ´¡¤¢ k ¥� •.Àª�� rk �� r1 ¤À� r �îý¤�Ï�� Ýþ¥�Æ� r.¢�� À�û��¡ T "ý�û´¡¤¢Âþ¥' T1, ..., Tk �¤��¬ßþ� ¤¢ •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 5 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
c
a
b d e
ihgf
j k l m
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 6 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ýÀ÷¥Âê ¤À� ý�û´¡¤¢ ¤¢ ��óø� ý�ûÓþÂã�¤�¢´ú� ´¡¤¢ ¤¢ (root) �Èþ¤.´¨� �µØþ ¤�¢´ú� ´¡¤¢ Âû ¤¢ ùÂð ßþ� ,´Æ�÷ ¤À� ý�¤�¢ �î ´¨� ý�ùÂð
(subtree) ´¡¤¢Âþ¥©¢�ø� ý�Þû �� ùÂð ×þ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 7 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(leaf) ïÂ�.À÷¥Âê öøÀ� ùÂð(sibling) ¤¢�Â�.À�µÆû Ýû ¤¢�Â� ,À÷¤�¢ ¤À� ×þ �î üþ�ûùÂð
(interior node) üÜ¡�¢ ùÂð.ïÂ� Â�è ùÂð
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 8 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%(height) v ùÂð á�Ô�¤�
v ý�Èþ¤ �� üµ¡¤¢Âþ¥ ¥� ý�ùÂð w �îý¤�Ï�� w ïÂ� �� v ¥� Â�Æõ ßþÂ�ï¤Ã� ñ�Ï.Àª��´¡¤¢ á�Ô�¤�.�Èþ¤ á�Ô�¤�
(depth - level) ùÂð ×þ (Õ�Þä) ¼�Ψ.ùÂð ö� �� ´¡¤¢ �Èþ¤ ¥� ýÂ�Æõ ñ�Ï �� ´�¨� Â��Â�ü¨Àì ÀÞ½õ c© 1391 ö��� 13 9 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(balanced tree) ö¥��µõ ´¡¤¢.Àª�� �µª�¢ é�µ¡� Ýû�� À��ø ×þ ·î�À� ö� ý�ûïÂ� ¼Î¨�î üµ¡¤¢
(completely balanced tree) ö¥��µõ �f õ�î ´¡¤¢. À�ª�� ö�ÆØþ ö� ý�ûïÂ� ¼�Ψ �î üµ¡¤¢
(k-ary tree) üþ�� k ´¡¤¢.À�ª�� k ´¡¤¢ ×þ ùÂð Âû ö�À÷¥Âê ¢�Àã� ·î�À�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 10 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(complete k-ary tree) Ûõ�î üþ�� k ´¡¤¢�þ k Â��Â� (ùÂð ×þ ·î�À� Ã�) ùÂð Âû ö�À÷¥Âê ¢�Àã� ö�¤¢ �î ´¨� ü÷¥��µõ ´¡¤¢.Àª�� (ïÂ� ý�Â�) ÂÔ¬
(ordered tree) °�Âõ ´¡¤¢.Àª�� Ýúõ ùÂð Âû ö�À÷¥Âê °��Â� ö�¤¢ �î ´¨� üµ¡¤¢
(labeled tree) ¤�¢°Æ�Â� ´¡¤¢.¢¤�¢ °Æ�Â� ×þ ö� ùÂð Âû �î ´¨� üµ¡¤¢
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 11 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%(binary tree) üþø¢ø¢ ´¡¤¢²�� À÷¥Âê ý�ûô�÷ �� À÷¥Âê ø¢ ý�¤�¢ ·î�À� ö�Â�Ê�ä Âû �î ´¨� ü±�Âõ ´¡¤¢�î ¢�ªÉ¿�Èõ Àþ�� Àª�� �µª�¢ À÷¥Âê ×þ ÍÖê ùÂð ×þ Âð� .Àª�� üõ ´¨�¤ ø.´¨�¤ �þ ´¨� ²� À÷¥Âê
(descendents) v ùÂð ×þ ¢�ø�Ó�þÂã� ßþ� �� .Ý�þ�ðüõ v ¢�ø� �¤ v �Èþ¤ �� üµ¡¤¢Âþ¥ ¤¢ ¢���õ ü�ûùÂð ý��Üî.´¨� ©¢�¡ ¢�ø� ¥� üØþ ùÂð Âû
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 12 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%(ancestors) ùÂð ×þ ¢�À��.Ý�þ�ð ùÂð ö� ¢�À�� �¤ ùÂð ×þ �� ��Èþ¤ ¥� ýÂ��Æõ ¤¢ ¢���õ ý�ûùÂð ý��Üî.´¨� ©¢�¡ ¢�À�� øÃ� ýÂ�Ê�ä Âû ßþ�Â����
(proper descendents) üãì�ø ¢�ø�.À�þ� üõ ��Æ� �� üãì�ø ¢�ø� ùÂð ö� ¢�¡ ¥� Â�è�� ùÂð ×þ ¢�ø� ô�Þ�
(proper ancestors) üãì�ø ¢�À��.À�µ�Æû üãì�ø ¢�À�� §�¤ ö� ¢�¡ ¥� Â�è �� §�¤ ×þ ¢�À�� ô�Þ�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 13 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%(full tree) Â� ´¡¤¢ö¥��µõ �f õ�î ø Ûõ�î ´¡¤¢
(forest) ÛÚ��!´¡¤¢ ý¢�Àã�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 14 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�ÜÿÆõ
ö� ý� ûï � ¢�À ã � ,Àª� � k � þ  Ԭ ùÂð  û ö�À ÷¥Â ê ¢�À ã �  ð� ù ð n � � ü µ¡¤¢ ¤¢?´¨��À��
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 15 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
:Û��ûïÂ� ¢�Àã� B •�ûùÂð Ûî ¢�Àã� n •.n− 1 = (n−B) ∗ k �ûñ�þ ¢�Àã� •�þ B = n− (n− 1)/k ø n−B = (n− 1)/k Å� •B = [(k − 1)n + 1]/k
.Àª�� ÂþÁ�Ç¿� k Â� Àþ�� (k − 1)n + 1 ü�ãþ •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 16 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�û´¡¤¢ Çþ�Þ��
T1...Tk ´¡¤¢ Âþ¥ k ø r �Èþ¤ �� T ´¡¤¢ :Â�ê:(preorder) °��Â�Ç�� ©ø¤
Pre(T ) = r, Pre(T1), P re(T2), . . . , P re(Tk) :(inorder) °��Â�ö��õ ©ø¤
Inorder(T ) = Inorder(T1), r, Inorder(T2), . . . , Inorder(Tk):(postorder) °��Â�Å� ©ø¤
Post(T ) = Post(T1), P ost(T2), . . . , P ost(Tk), r
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 17 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
c
a
b d e
ihgf
j k l m
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 18 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
preorder(T ): a, b, c, f, g, h, j, k, d, e, i, l, m
inorder(T ): b, a, f, c, g, j, h, k, d, l, i, m, e
postorder(T ): b, f, g, j, k, h, c, d, l, m, i, e, a
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 19 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ñ¢�ãõ üþø¢ø¢ ´¡¤¢m
d e
j k
hgf i
a
b c
l
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 20 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
´¡¤¢ ýø¤ Â� ñ�Þä�
(.´¨� üú� root[T ]) À�îüõ ¢�¹þ� T üú� ´¡¤¢ ×þ :MakeEmpty(T ) •´¡¤¢ :ü�ø¡ ,º�û :ý¢ø¤ø
À÷�¢ÂðüõÂ� �¤ T ´¡¤¢ ý�Èþ¤ :Root(T ) •ùÂð :ü�ø¡ ,´¡¤¢ :ý¢ø¤ø
À÷�¢ÂðüõÂ� T ´¡¤¢ ¤¢ �¤ p ýùÂð ¤À� :Parent(T, p) •ü¨Àì ÀÞ½õ c© 1391 ö��� 13 21 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
null �þ ùÂð :ü�ø¡ ,ùÂð ø ´¡¤¢ :ý¢ø¤ø
À÷�¢ÂðüõÂ� T ´¡¤¢ ¤¢ �¤ p ýùÂð À÷¥Âê ß�óø� :Left-Most-Child(T, p) •
null �þ ùÂð :ü�ø¡ ,ùÂð ø ´¡¤¢ :ý¢ø¤ø
À÷�¢ÂðüõÂ� T ´¡¤¢ ¤¢ �¤ p ´¨�¤ ´Þ¨ ¤¢�Â� :Right-Sibling(T, p) •
null �þ ùÂð :ü�ø¡ ,ùÂð ø ´¡¤¢ :ý¢ø¤ø
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 22 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
´¡¤¢ ¤¢ ¢���õ ¬��ä ¢�Àã� :Size(T ) •¼�½¬ ¢Àä ×þ :ü�ø¡ ,´¡¤¢ :ý¢ø¤ø
´¨� üó�¡ ´¡¤¢ �þ� �î À�îüõ É¿Èõ :isEmpty(T ) •´¨¤¢�÷ �þ ´¨¤¢ :ü�ø¡ ,´¡¤¢ :ý¢ø¤ø
À÷�¢ÂðüõÂ� �¤ p ùÂ𠤢 ÂÊ�ä °Æ�Â� :Element(T, p) •°Æ�Â� :ü�ø¡ ,ùÂð ø ´¡¤¢ :ý¢ø¤ø
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 23 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
T ´¡¤¢ ¤¢ r ý�Èþ¤ �� üµ¡¤¢ Âþ¥ Çþ�Þ��
Preorder (T, r)1 if r = null
2 then return
3 visit Element(T, r)4 p← Left-Most-Child (T, r)5 while p 6= null
6 do Preorder (T, p)7 p← Right-Sibling (T, p)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 24 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Postorder (T, r)1 if r = null
2 then return
3 p = Left-Most-Child (T, r)4 while p 6= null
5 do Postorder (T, p)6 p← Right-Sibling (T, p)7 visit Element(T, r)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 25 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Inorder (T, r)1 if r = null
2 then return
3 p← Left-Most-Child (T, r)4 Inorder (T, p)5 visit Element(T, r)6 p← Right-Sibling (T, p)7 while p 6= null
8 do Inorder (T, p)9 p← Right-Sibling (T, p)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 26 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ÂÚþ¢ ÛÞä À��
CountNodes (T, r). ¢¤�Þªüõ �¤ r ý�Èþ¤ �� T ´¡¤¢ ¤¢ ¢���õ ý�ûùÂð ¢�Àã�
1 if Root(T =) null
2 then return 03 count← 14 p← Left-Most-Child(T, r)5 while p 6= null
6 do count← count+ CountNodes(T, p)7 p← Right-Sibling (T, p) return count
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 27 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
NodeHeight (T, p). À÷�¢ÂðüõÂ� �¤ö� ø À�îüõ �±¨�½õ T ´¡¤¢ ¤¢ �¤ p ùÂð á�Ô�¤�
. Ýþ¤�À÷ üä�Ï� ´¡¤¢ ý¥�¨ù¢��� ýù�½÷ ¥�
1 if isEmpty(T )2 then return -13 height← 04 p← Left-Most-Child(T, p)5 while p 6= null
6 do height← max{height, NodeHeight (T, p)}7 p← Right-Sibling(T, p)8 return height + 1
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 28 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
:ÂÚþ¢ ý�ûÛÞä �� parent ý¥�¨ù¢��� :ßþÂÞ�
r ý�Èþ¤ �� üµ¡¤¢Âþ¥ ¤¢ T ´¡¤¢ ¤¢ p ¤À�
Find-Parent (T, r, p). À÷�¢ÂðüõÂ� T ´¡¤¢ ¤¢ r ý�Èþ¤ �� üµ¡¤¢Âþ¥ ¤¢ �¤ p ùÂð ×þ ¤À� ùÂð
. À÷�¢ÂðüõÂ� null Àª�±÷ ´¡¤¢Âþ¥ ¤¢ ÂÊ�ä �î ü�¤�¬ ¤¢
. ¢¤�À÷ ¢��ø "¤À�' Âðù¤�ª� �î Ý��îüõ Âê1 if p = r2 then return null
3 q ← Left-Most-Child(T, r)4 while q 6= null
5 do if p = q6 then return r7 s← Parent(T, q, p)8 if s 6= null
9 then return s10 q ← Right-Sibling(T, q)11 return nullü¨Àì ÀÞ½õ c© 1391 ö��� 13 29 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�þ�¤� �� �û´¡¤¢ ý¥�¨ù¢���
.´¨� ÂÔ¬ ö� Father ý�Ôó�õ :�Èþ¤ ý�þ�¤¢.¢�ª ÐÔ� Àþ�� �û¤¢�Â� °��Â� ?°�Âõ ý�û´¡¤¢ ý¥�¨ù¢���
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 30 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
c
a
b d e
ihgf
j k l m
1 2 3 4 5 6 7 8 9 10 11 12 13key a b c d e f g h i j k l m
parent 0 1 1 1 1 2 2 2 5 8 8 9 9
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 31 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
.¢Âî ý¥�¨ù¢��� �þ�¤� ×þ ¤¢ �¤ ´¡¤¢ À�� ö���üõ ©ø¤ ßþ� ��
r
p
x z
u q m
w s t
a
b d ec
f g ih
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19a b c d e f p u g h i q m r s t w x z0 1 1 1 1 2 0 7 2 5 5 7 7 13 13 13 8 8 8
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 32 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�ûÂðù¤�ª� ¥� ù¢�Ôµ¨� ��
:À� ©ø¤ùÂð Âû,label ý�û�Ôó�õ •ù¤� ª� ù ð ö� ô�i À ÷¥Â ê � � child[i] � î Child[1..max-child] ý� þ�¤� × þ •.À�îüõ.´¨� ´¡¤¢ ¤¢ ùÂð ×þ ö�À÷¥Âê ¢�Àã� ·î�À� max_child ¤�ÀÖõ •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 33 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%ü¨Àì ÀÞ½õ c© 1391 ö��� 13 34 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ñ¢�ãõ üþø¢ø¢ ´¡¤¢ :��¡ ý¥�¨ù¢���ùÂð Âû ý�Â�
label ý�Ôó�õ •parent ø right-sibling ,left-most-child Âðù¤�ª� �¨ •(üܬ� ´¡¤¢ ¤¢) ùÂð ö� ¤À� �� ø ´¨�¤ ´Þ¨ ¤¢�Â� ,²�´Þ¨ À÷¥Âê ß�óø� �� •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 35 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
a
b c d
f g h
j k
i
l m
root[T ]
e
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 36 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
üÆþÀ÷� ý�ûÂðù¤�ª� ¥� ù¢�Ôµ¨� �� ý¥�¨ù¢���©ø¤ ø¢ ý�Æþ�Öõ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 37 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
©ø¤ ßþ� �� ùÀª ý¥�¨ù¢��� ´¡¤¢ ©ÂµÆð ø ¢�¹þ�
Create2 (x, T1, T2). À�îüõ ¢�¹þ� ´¨� x ö� °Æ�Â� �î ý��Èþ¤ �� üµ¡¤¢
. À�ª�� ö� ôø¢ ø ñø� ý�û´¡¤¢Âþ¥ °��Â��� T2 ø T1 ý�û´¡¤¢ Âþ¥ �î
. À÷�ùÀª ý¥�¨ù¢��� ©ø¤ ß�Þû �� üµ¨¤¢�� �û´¡¤¢Âþ¥ ø ´Æ�÷ üú� T1 :Âê
r ← Allocate-Node (x, T1,null )1 parent[Root(T1)] ← r2 parent[Root(T2)] ← r3 right-sibling[Root(T1)] ← Root(T2)4 return r
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 38 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Create3 (x, T1, T2, T3). Àû¢üõ ô�¹÷� T3 ø T2 ,T1 ´¡¤¢ Âþ¥ �¨ �� �¤ Create2 ¤�î ö�Þû
r ← Allocate-Node (x, T1,null )1 parent[Root(T1)] ← r2 parent[Root(T2)] ← r3 parent[Root(T3)] ← r4 right-sibling[Root(T1)] ← Root(T2)5 right-sibling[Root(T2)] ← Root(T3)6 return r
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 39 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
üþø¢ø¢ ´¡¤¢
.À�îüõ ù¤�ª� ùÂð ö� ´¨�¤ ø ²� À÷¥Âê �� �î ¢¤�¢ right ø left ý�Ôó�õ ø¢ ùÂð Âû.Àª�� �µª�¢ Ýû parent ´¨� ßØÞõ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 40 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ùÂð n �� üþø¢ø¢ ý�û´¡¤¢ ¢�Àã�
n− i
i
i− 1
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 41 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
T (n) =
T (0) = 1
T (n) =n∑
i=1T (i− 1)T (n− i), n ≥ 1(ö����î ô�n ¢Àä) T (n) = 1
n+1(2nn
) üµÈð¥�� ý�Î��¤ ßþ� ����
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 42 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Preorder (T, r). r ý�Èþ¤ �� T üþø¢ø¢ ´¡¤¢ °��Â�Ç�� Çþ�Þ��
1 if r = null
2 then return
3 visit Element(T, r)4 Preorder(T, left[r])5 Preorder(T, right[r])
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 43 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(Expression Tree) �¤�±ä ´¡¤¢:�¤�±ä ×þ Óܵ¿õ ý�û©¤�Ú÷
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 44 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(infix with complete paranthesis) Ûõ�î ýõ÷�Â� �� ýÀ÷øö��õ •E → (E 〈β〉 E )
→ ( 〈α〉E )
→ 〈operand〉
〈α〉 → ¬ | ! | Sin | Log | · · · unary operators
〈β〉 → − |+ | ∗ | / | ˆ | ∧ | ∨ | · · · binary operators
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 45 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%(postfix) ýÀ÷�Æ� ©¤�Ú÷ •
E → EE〈β〉
→ E〈α〉
→ 〈operand〉
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 46 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%(prefix) ýÀ÷øÇ�� ©¤�Ú÷ •
E → 〈β〉EE
→ 〈α〉E
→ 〈operand〉
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 47 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
a+(b-c*d)^e-f^g^(h /-i* k)
∗
a ∧ f
−
+ ∧
∧
− e g ∗
k/b
c d h ¬
i
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 48 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�¤�±ä ©¤�Ú÷
a+(b-c*d)^e-f^g^(h/¬i*k) ýÀ÷øö��õ
((a+((b-(c*d))^e))-(f^(g^((h/(¬i))*k)))) Ûõ�î õ÷�Â� �� ýÀ÷øö��õ
abcd*-e^+fghi¬/k*^^- ýÀ÷øÅ�
-+a^-b*cde^f^g*/h¬ik ýÀ÷øÇ��
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 49 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�¤�±ä ×þ Óܵ¿õ ý�û©¤�Ú÷ ÛþÀ±�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 50 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�¤�±ä ´¡¤¢← Ûõ�î õ÷�Â� �� ýÀ÷øö��õ
( E1 E2β )
l r
l + 1 k
β
E1E2
E2k + 2
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 51 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
( )
l r
α E
l + 2α
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 52 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
P-Infix-to-Tree (l, r). �¤ ¢¤�¢ ¤�Âì par-infix ý�þ�¤� ¤¢ r �� l ÅþÀ÷� ¥� �î Ûõ�î õ÷�Â� �� ýÀ÷øö��õ �¤�±ä ×þÀ�îüõ ÛþÀ±� ö� ñ¢�ãõ �¤�±ä ´¡¤¢ �� üµÈð¥�� ©ø¤ ��
1 if l > r2 then return null
3 if l = r4 then return Allocate-Node (par-infix[l], null , null )5 if par-infix[l + 1] in an unary operator6 then return Allocate-Node (par-infix[l + 1],null ,
P-Infix-to-Tree(l + 2, r − 1))7 k ← FindMatch(l + 1)8 return Allocate-Node (par-infix[k + 1],
P-Infix-to-Tree(l + 1, k), P-Infix-to-Tree(k + 2, r − 1))
O(n2)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 53 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
((a+((b−(c*d))^e))−(f^(g^((h/−i))*k))))
(
−
i
)
)
k
)
)
)
)
(
(g
(
f
)
e
)
)
)
dc
(
b
(
(+
a
(
(
^ ^
/
*
^
−
*
−
h
^ ^
^
∗
i
¬hdc
b / k
∗ge−
+
−
fa
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 54 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
.´¨� üΡ ݵþ¤�Úó�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 55 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
NR-P-Infix-to-Tree (). À÷¤�¢ ¤À� �� Âðù¤�ª� ,´¡¤¢ ý�ûùÂð �î ¢�ªüõ Âê
1 Create-Tree (T )2 p← Root (T )3 for i = 1 to length[par-infix]4 do switch
5 case par-infix[i] = ’(’6 do if par-infix[i + 1] 6= unary operator7 then left[p]← Alloc-N (null , null , p)8 p← left[p]9 case par-infix[i] = ’)’
10 do p← parent[p]11 case par-infix[i] is an operand12 do label[p] ← par-infix[i]; p← parent[p]13 case par-infix[i] is a binary or unary operator14 do label[p] ← par-infix[i]15 right[p]← Alloc-N (null , null , p)16 p← right[p]ü¨Àì ÀÞ½õ c© 1391 ö��� 13 56 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ýÀ÷øÅ� �¤�±ä �� (Ûõ�î ýõ÷�Â� �� �fõøÃó �÷) ýÀ÷øö��õ �¤�±ä ÛþÀ±�
ü�ø¡ �µÈ�→ ← ý¢ø¤ø ý�û�Æþ�÷
a +(b− c ∗ d) ∧ e− f ∧ g ∧ (h/¬ i ∗ k)a + (b− c ∗ d) ∧ e− f ∧ g ∧ (h/¬ i ∗ k)a + ( b− c ∗ d) ∧ e− f ∧ g ∧ (h/¬ i ∗ k)a +( b −c ∗ d) ∧ e− f ∧ g ∧ (h/¬ i ∗ k)
ab +( − c ∗ d) ∧ e− f ∧ g ∧ (h/¬ i ∗ k)ab +(− c ∗d) ∧ e− f ∧ g ∧ (h/¬ i ∗ k)
abc +(− ∗ d) ∧ e− f ∧ g ∧ (h/¬ i ∗ k)abc +(−∗ d ) ∧ e− f ∧ g ∧ (h/¬ i ∗ k)
abcd +(−∗ ) ∧e− f ∧ g ∧ (h/¬ i ∗ k)abcd ∗ − + ∧ e− f ∧ g ∧ (h/¬ i ∗ k)abcd ∗ − +∧ e −f ∧ g ∧ (h/¬ i ∗ k)
abcd ∗ −e +∧ − f ∧ g ∧ (h/¬ i ∗ k)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 57 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ü�ø¡ �µÈ�→ ← ý¢ø¤ø ý�û�Æþ�÷
abcd ∗ −e ∧+ − f ∧g ∧ (h/¬ i ∗ k)abcd ∗ −e ∧+f − ∧ g ∧ (h/¬ i ∗ k)abcd ∗ −e ∧+f −∧ g ∧(h/¬ i ∗ k)
abcd ∗ −e ∧+fg −∧ ∧ (h/¬ i ∗ k)abcd ∗ −e ∧+fg − ∧ ∧ ( h/¬ i ∗ k)abcd ∗ −e ∧+fg − ∧ ∧( h /¬ i ∗ k)
abcd ∗ −e ∧+fgh − ∧ ∧( / ¬ i ∗ k)abcd ∗ −e ∧+fgh − ∧ ∧(/ ¬ i ∗ k)abcd ∗ −e ∧+fgh − ∧ ∧(/¬ i ∗k)
abcd ∗ −e ∧+fghi − ∧ ∧(/¬ ∗ k)abcd ∗ −e ∧+fghi¬ / − ∧ ∧(∗ k )
abcd ∗ −e ∧+fghi¬ /k − ∧ ∧(∗ )abcd ∗ −e ∧+fghi¬ /k∗ − ∧ ∧
abcd ∗ −e ∧+fghi¬ /k ∗ ∧ ∧ −
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 58 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
t : ´¨� �µÈ� ý��� �î ýÂðÛÞä
( − + × / ˆ ¬( Push Push Push Push Push Push Push− Push Pop Pop Pop Pop Pop Pop+ Push Pop Pop Pop Pop Pop Pop
c:ý¢ø¤ø ÂðÛÞä ∗ Push Push Push Pop Pop Pop Pop/ Push Push Push Pop Pop Pop Popˆ Push Push Push Push Push Push Pop¬ Push Push Push Push Push Push Pop) Pop-more Pop Pop Pop Pop Pop Pop
Action[i,j] ñøÀ�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 59 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Infix-to-Postfix (infix)Intialize-actions()
1 while there is token in infix2 do read token c from infix3 if c is an operand4 then write c at the end of postfix5 elsedone← false6 while not done7 do if isEmpty(S)8 then Push(c, S); done← true
9 elset← Top(S)10 if action[c, t] =’Push’11 then Push (S, c); done← true
12 elseif t 6= ’(’13 then write t at postfix14 Pop(S)15 while not isEmpty(S)16 do write Top(S) at the end of postfix; Pop(S)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 60 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
.´¨� üΡ ݵþ¤�Úó�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 61 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�¤�±ä ´¡¤¢← ýÀ÷øö��õ
üþ�û�¤�±ä ý�û´¡¤¢Âþ¥ ý�û�Èþ¤ ö� ¤¢ �î Ý�û¢üõ ¤�Âì �µÈ� ü�ø¡ ý���� •¢Â�ðüõ ¤�Âì À÷�ùÀª �µ¡�¨ ö��î �� �îý�µÈ� ¤¢ ö� �¤¢ ø À÷øÛÞä � � ùÂð ×þ ¢�¹þ� ü�ãþ ü�ø¡ ¤¢ À÷øÛÞä ��� •ü�ø¡×þ ¢�¹þ� ø ü�ø¡ ý�µÈ� ¥� Pop ¤�� ø¢ ü�ãþ ü�ø¡ ¤¢ üþø¢ø¢ ÂðÛÞä ��� •ü�ø¡ ý�µÈ� ¤¢ ÀþÀ� ´¡¤¢Âþ¥ �¤¢ ø ÂðÛÞä ßþ� �� ´¡¤¢ Âþ¥ö� ý���� ÀþÀ� ´¡¤¢Âþ¥ �¤¢ ø Pop ¤�� ×þ ü�ãþ ü÷�Úþ ÂðÛÞä ��� •.O(n) ý�±�Âõ ¥�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 62 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(Θ(n) ¥� ñø� ù�¤) ýÀ÷øÇ�� ← ýÀ÷øÅ�üµÈð¥�� ý�þø¤ ×þ ¤¢ÛþÀ±� prefix[? · · · j] ¤¢ ýÀ÷øÇ�� ©¤�Ú÷ �� �¤ postfix[? · · · i] ýÀ÷øÅ� �¤�±äÂþ¥ •Ý��îüõÀ�µÆû �¤�±äÂþ¥ ø¢ ßþ� áøª ý�ûÅþÀ÷� j ø i ,�úµ÷� ¤¢ •À÷�ªüõ Âê ý¨�¨ ý�û�þ�¤� prefix ø postfix •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 63 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
E1 β
i
E2
E ′1 E ′2β
j
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 64 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Postfix-to-Prefix (i, j)switch
1 case postfix[i] is an operand2 do prefix[j]← postfix[i]3 case postfix[i] is a binary operator4 do operator ← postfix[i]5 i← i− 16 Postfix-to-Prefix (i, j)7 i← i− 1; j ← j − 18 Postfix-to-Prefix (i, j)9 prefix[j − 1]← operator
10 j ← j − 111 case postfix[i] is an unary operator12 do operator ← postfix[i]; i← i− 113 Postfix-to-Prefix (i, j)14 prefix[j − 1]← operator15 j ← j − 1
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 65 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(Θ(n2) ¥� ôø¢ ù�¤) ýÀ÷øÇ�� ← ýÀ÷øÅ�
E1 βE2E ′1 E ′2β
i
k
jr
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 66 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Postfix-to-Prefix (i, j, k). converts postfix[i..j] to prefix[k..?]
1 if j < i2 then return
3 if i = j4 then prefix[k]← postfix[i]5 elseprefix[k]← postfix[j]6 r ← FindR (postfix, j − 1)7 Postfix-to-Prefix (i, r − 1, k + 1)8 Postfix-to-Prefix (r, j − 1, r − i + k + 1)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 67 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
FindR (A, j)1 switch2 case A[j] is a binary operator3 do count← 24 case A[j] is a unary operator5 do count← 16 default7 do count← 18 r ← j9 while Count > 0
10 do r ← r − 111 switch12 case A[r] is a binary operator13 do count← count + 114 case A[r] is a unary operator15 do nothing16 case17 do count← count− 118 return r
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 68 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(ü¨¤¢� Â�çµõ ,Θ(n) ,ñø� ù�¤) �¤�±ä ´¡¤¢ ← ýÀ÷øÅ�
β
E1 E2
E1 E2 β
j
E2
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 69 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
α
E
α
j
E
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 70 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Postfix-to-Tree-1 (j). À�îüõ ¢�¹þ� postfix[?..j] ý�Â� �¤�±ä ´¡¤¢ ×þ
. ¢�� Àû��¡ áøª ÅþÀ÷� Â��Â� �úµ÷� ¤¢ ø ´¨� ü¨¤¢� Â�çµõ ×þ j �î ¢�ªüõ Âê
1 n← Allocate-Node(A[j],null ,null )2 switch
3 case postfix[j] is a binary operator4 do j ← j − 15 right[n]← Postfix-to-Tree-1(j)6 j ← j − 17 left[n]← Postfix-to-Tree-1(j)8 case postfix[j] is a unary operator9 do j ← j − 1
10 right[n]← Postfix-to-Tree-1(j)11 return n
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 71 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(�µÈ� �� ,Θ(n) ,ôø¢ ù�¤) �¤�±ä ´¡¤¢ ← ýÀ÷øÅ�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 72 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(�µÈ� �� ,Θ(n) ,ôø¢ ù�¤) �¤�±ä ´¡¤¢← ýÀ÷øÅ�
Postfix-to-Tree-2 (postfix). À�îüõ ¢�¹þ� postfix ý�Â� �¤�±ä ´¡¤¢ ×þ
1 Create-Stack(S). À�µÆû ´¡¤¢Âþ¥ ×þ �� Âðù¤�ª� �µÈ� ¬��ä
2 for i← 1 to length[postfix]3 do if postfix[i] is an operand4 then Push(S, Allocate-Node(postfix[i], null , null ))5 if postfix[i] is a unary operator6 then r ← Allocate-Node(postfix[i], null ,Pop(S))7 Push(S, r)8 if postfix[i] is a binary operator9 then t← Pop(S)
10 r ← Allocate-Node(postfix[i],Pop(S), t)11 Push(S, r)12 return Top(S)ü¨Àì ÀÞ½õ c© 1391 ö��� 13 73 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(Trie) ý�Â�c
ý¤�Ï�� �ÞÜî ¢�Àã� ýùÂ�¡£ ý�Â� ý¤�µ¡�¨ù¢�¢ (retrieval ý�ÞÜî ¥� ùÀª�µêÂðÂ�) ý�Â�(�û��þÍÜè ý�Â�) Â�¡ �þ ´Æû ö� ¤¢ �ÞÜî ×þ �î ¢�¢ É�¿È� �¤�î �¤�¬�� ö��µ� �îô�ÀîÂû ¢¤�¢ À÷¥Âê 26 ,ý�Â�c ýùÂð Âû ,À�ª�� ’z’ �� ’a’ éøÂ� �� üÆ�ÜÚ÷� ��ÞÜî Âð�.éÂ� ×þ ý�Â�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 74 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
*/−
c d zbah i i
e i
n
t ws
nm
e
o
p
sn
character
*
* *
****
* * *g
e
e
.the ø ,then ,thin ,this ,tip ,see ,some ,so ,win ,wing ��ÞÜî ý�Â� ý�Â�c ×þ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 75 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
type Lettertype = ’a’ .. ’z’;
Node = ^ Nodetype;
Nodetype = record
letter : Lettertype;
isword: (’*’, ’-’);
children: array[Lettertype] of Node
end;
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 76 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ý�Â� ýø¤ Â� ñ�Þä�ý�Â� ¤¢ �µª¤ ×þ �¤¢ý�Â� ¥� �µª¤ ×þ éÁ�ý�Â� ¤¢ �µª¤ ×þ ö¢Âî�À�� ý�Â� ��ø´Æ�ý�Â� ¤¢ ¢���õ ý�û�µª¤ ô�Þ� ßµª�÷
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 77 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ý�Â� ¤¢ �¤¢
Trie-Insert (T, x). À�îüõ �¤¢ T ý�Â� ¤¢ �¤ x ý�ÞÜî
1 p← Root(T )2 for i← 1 to length[x]3 do if the value of x[i]th link of p is null
4 then x[i]th link of p←Allocate-Node(with x[i] as its value)
5 p← x[i]th child of p6 tag[p]← ‘*’
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 78 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(ÓþÂã�) ��ø´Æ� üþø¢ø¢ ´¡¤¢üþø¢ø¢ ´¡¤¢ •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 79 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(ÓþÂã�) ��ø´Æ� üþø¢ø¢ ´¡¤¢üþø¢ø¢ ´¡¤¢ •
x °Æ�Â� �� n ùÂð Âû ý�Â� •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 80 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(ÓþÂã�) (�.¢.¢) ��ø´Æ� üþø¢ø¢ ´¡¤¢üþø¢ø¢ ´¡¤¢ •
x °Æ�Â� �� n ùÂð Âû ý�Â� •ø x ¥� Â�Ýî n ²� ´¡¤¢Âþ¥ ý�ûùÂð ý��Üî °Æ�Â� --
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 81 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(ÓþÂã�) �.¢.¢üþø¢ø¢ ´¡¤¢ •
x °Æ�Â� �� n ùÂð Âû ý�Â� •ø x ¥� Â�Ýî n ²� ´¡¤¢Âþ¥ ý�ûùÂð ý��Üî °Æ�Â� --´¨� x ¥� Â�Ç�� ö� ´¨�¤ ´¡¤¢Âþ¥ ý�ûùÂð ý��Üî °Æ�Â� --
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 82 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
label
do
then
x
< x > x
else
end
goto
ifbegin
��ø´Æ� üþø¢ø¢ ´¡¤¢ ×þ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 83 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
¬��ä ýùÀª°�Âõ←−°��Â�ö��õ Çþ�Þ��:´¡¤¢ ¢�¹þ� ¤¢ �¤¢ °��Â�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 84 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
label
begin
do
else
end
goto
if
begin
do
else
if
goto
end
then
label
then
á�Ô�¤� ßþÂ�Ç�� ��?´¨�� À�� ùÂð n �� üþ�û´¡¤¢ ß��� ¢�Àã�ü¨Àì ÀÞ½õ c© 1391 ö��� 13 85 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
2n−1 :¢�Àã�
(´ó�� ø¢) ´¨�¤ �þ ¢¤�¢ ²� À÷¥Âê �þ ô�Àî Âû .À÷¥Âê �� ùÂð n− 1ü¨Àì ÀÞ½õ c© 1391 ö��� 13 86 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
goto
if
label
endbegin
do
else
then
á�Ô�¤� ßþÂ�Ýî ��blg nc :á�Ô�¤� ßþÂ�Ýî?¢�Àã�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 87 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%.´¨� ´¿¨ üÜî ´ó��?¤�Î� ,¢�È� ö¥��µõ �f õ�î ïÂ� ý¢�Àã� éÁ� �� ´¡¤¢ Âð�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 88 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ùÂð n �� �.¢.¢ á�Ô�¤�
(?�Â�) blg nc ≤ á�Ô�¤� ≤ n− 1
O(lg n) :á�Ô�¤� ß�Ú÷��õ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 89 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ùÂð n �� �.¢.¢ ¢�Àã�
?´¡�¨ ö���üõ �ø�Ôµõ �.¢.¢ ´¡¤¢ �� À�� a1 < a2 < · · · < an ��
T (n) =n∑
i=1T (i− 1)T (n− i),
T (0) = 1T (n) =
1n + 1
2nn
ö����î ¢Àä
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 90 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
!À��î Û� ��ß�Þû
.¢�ª �.¢.¢ �� À�û¢ ´±Æ÷ ý¤�Ï Âþ¥ ´¡¤¢ �� �¤ {6, 22, 9,14, 13,1, 8} ¢�Àä�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 91 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
96
81
13 1422
¢¥�¨üõ �¤ ë�ê ´¡¤¢ üú� ´¡¤¢ ×þ ¤¢ �¤¢ ý�û�ó�±÷¢ ßþ�13,6, 9,1, 14, 8,2213,14, 6,22, 1, 9,813,6, 1,9, 8, 14,22ü¨Àì ÀÞ½õ c© 1391 ö��� 13 92 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ë�ê ´¡¤¢ �úµ÷� ¤¢ �� ¢Âî üú� ´¡¤¢ ×þ ¢¤�ø �¤ ë�ê ¢�Àä� ö���üõ ´ó�� À����.À��î �±¨�½õ �fÖ�ì¢ �¤ ¤�ÀÖõ ßþ� ?¢�ª Û¬��
13, 6, 9, 1, 8
^ ^
14 22
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 93 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
r ∪ l1 ∪ l2 . . . ∪ ln1 ∪T (n) = T (n1)T (n2)(n1 + n2)!
n1!n2!´¨� ²� ´¡¤¢Âþ¥ ¤¢ �ûùÂð ¢�Àã� n1´¨� ´¨�¤ ´¡¤¢Âþ¥ ¤¢ �ûùÂð ¢�Àã� n2
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 94 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
��ø´Æ�
BST-Search (r, x). ´¨� �.¢.¢ ×þ (ý�Èþ¤ �þ) ùÂð ×þ r
1 if r = null or x = key[r]2 then return r3 if x < key[r]4 then return BST-Search(left[r], x)5 elsereturn BST-Search(right[r], x)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 95 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(üµÈð¥�� Â�è) ��ø´Æ�
NR-BST-Search (r, x). ´¨� �.¢.¢ ×þ (ý�Èþ¤ �þ) ùÂð ×þ r
1 while r 6= null and x 6= key[r]2 do if x < key[r]3 then r ← left[r]4 elser ← right[r]5 return r
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 96 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
���Þî ÂÊ�ä ßµê�þ
BST-Minimum (r)1 if left[r] = null
2 then return r BST-Minimum(left[r])
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 97 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(üµÈð¥�� Â�è) ���Þî ßµê�þ
BST-Minimum (r)1 while left[r] 6= null
2 do r ← left[r]3 return r
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 98 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ýÀã� ÂÊ�äx
x
Succ(x)
y = Succ(x)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 99 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
BST-Successor (r)1 if right[r] 6= null
2 then return BST-Minimum(right[r])3 y ← parent[r]4 while y 6= null and r = right[y]5 do r ← y6 y ← parent[y]7 return y
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 100 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
x �¤¢r α > x
x
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 101 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
BST-Insert (r, x). ´¨� �.¢.¢ (ý�Èþ¤ �þ) ùÂð ×þ r
. Àª�� ü¨¤¢� µõ�¤�� ×þ Àþ�� r :Ýúõ
. ¢¤�À÷ ¢��ø parent ý�Ôó�b õ ¢�ªüõ Âê1 if r = null
2 then r ← Allocate-Node(x, null , null )3 if x < key[r]4 then BST-Insert(left[r], x)5 elseif x > key[r]6 then BST-Insert(right[r], x)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 102 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
¤À� ý�Ôó�õ �� üµÈð¥�� �¤¢
BST-Insert-2 (r, p, x). �.¢.¢ (ý�Èþ¤ �þ) ùÂð ×þ r
. ´¨� r ¤À� p
. Àª�� ü¨¤¢� µõ�¤�� ×þ Àþ�� r :Ýúõ1 if r = null
2 then r ← Allocate-Node(x, null , null )3 parent[r]← p4 if x < key[r]5 then BST-Insert-2(left[r], r, x)6 elseif x > key[r]7 then BST-Insert-2(right[r], r, x)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 103 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
üµÈð¥�� Â�è �¤¢
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 104 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
NR-BST-Insert (T, x)1 n← Allocate-Node(x,null ,null )2 prep← null
3 p← root[T ]4 while p 6= null
5 do prep← p6 if x < key[p]7 then p← left[p]8 elseif x > key[p]9 then p← right[p]
10 elsereturn11 parent[n]← prep12 if prep = null
13 then root[T ]← n14 elseif x < key[prep]15 then left[prep]← n16 elseright[prep]← n
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 105 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ÂÊ�ä ßþÂ�×��î éÁ�
t
r
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 106 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ÂÊ�ä ßþÂ�×��î éÁ�
BST-Deletemin (r). ´¨� �.¢.¢ (ý�Èþ¤ �þ) ùÂð ×þ r
. Àª�� ü¨¤¢� µõ�¤�� ×þ Àþ�� r :Ýúõ1 if r = null
2 then error tree is empty3 if left[r] = null
4 then x← label[r]5 t← r6 r ← right[r]7 parent[r]← parent[t]8 Free-Node (t)9 return x
10 elsereturn BST-Deletemin(left[r])
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 107 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ÂÊ�ä ×þ éÁ�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 108 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
rr
r
r ← right[r]
r ← left[r]x
x
x
(c)
(b) (a)
label[r]←BST-DeleteMin(right[r])
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 109 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
BST-Delete (r, x). r is a node (or the root) of a BST. r is a reference variable
1 if r = null
2 then error (“Tree is Empty”)3 if x < label[r]4 then BST-Delete(left[r], x)5 if x > label[r]6 then BST-Delete(right[r], x)7 if x = label[r]8 then
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 110 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
BST-Delete (r, x)...
1 if x = label[r]2 then temp← r3 if left[r] = null
4 then r ← right[r]5 parent[r]← parent[temp]6 Freee-Node(temp)7 elseif right[r] = null
8 then r ← left[r]9 parent[r]← parent[temp]
10 Freee-Node(temp)11 else label[r]← BST-Deletemin (right[r])
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 111 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
!À��î Û� ��ß�Þû
?´¡�¨ ×� �¤�¬�� �¤ö� ö���üõ �¢¢ ×þ ¬��ä ¥� °��Â�ß�� ý�ó�±÷¢ ßµª�¢ �� �þ�?¤�Ï�� °��Â�Å� ��?¤�Ï�� °��Â�Ç�� ��
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 112 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ÂÊ�ä ×þ üµÈð¥�� Â�è éÁ�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 113 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(b)(c)
(a)7
18 23y
20
z
y15
5
3
20
2318
16
7
12
10
6
15
5
3
20
2318
7
12
10
6
15
5
3
6
20
2318
16
12
10
7
3
5
15
6
10
12
13
7
16
18 23
3
6
15
7
10
12
16
18 23
20
20
zy
3
5
15
6
10
12
13
7
16
18 23
20
z
y
3
5
15
6
10
12
13z
16
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 114 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
NR-BST-Delete (T, z)1 if left[z] = null or rigt[z] = null
2 then y ← z3 elsey ← BST-Successor(z)4 if left[y] 6= null
5 then x← left[y]6 elsex← right[y]7 if x 6= null
8 then parent[x]← parent[y]9 if parent[y] = null
10 then root[T ]← x11 elseif y = left[parent[y]]12 then left[parent[y]]← x13 elseright[parent[y]]← x14 if y 6= z15 then key[z]← key[y]
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 115 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ùÂð n �� �.¢.¢ á�Ô�¤� ß�Ú÷��õ
T üú� �.¢.¢ ×þ ¢¤�ø ö�¨×þ ñ�Þµ�� �� ø üê¢�Ê� �¤�¬�� a1 < a2 · · · < an :Âê.À÷�ªüõ.´¨� O(log n) Â��Â� T á�Ô�¤� ß�Ú÷��õ �î Ý��îüõ ´���:üê¢�Ê� Â�çµõ �¨.¢�ªüõ ¢�¹þ� ÂÊ�ä n ý�Â� üê¢�Ê� �¤�¬�� �î üµ¡¤¢ á�Ô�¤� Xn •.Yn �� ¤�î üð¢�¨ ÂÏ�¡ �� Yn = 2Xn •.¢Â�ðüõ ¤�Âì �Èþ¤ ¤¢ ø ¢�ªüõ T ¢¤�ø �î ýÂÊ�ä ß�óø� ÅþÀ÷� Rn •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 116 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
n− i ö� ´¨�¤ ´¡¤¢Âþ¥ ø ÂÊ�ä i− 1 �fÞµ� �Èþ¤ ²� ´¡¤¢Âþ¥ ,Rn = i Âð� •.¢¤�¢ ÂÊ�ä
ø¢ ý�ûá�Ô�¤� ý���È�� ¥� Â�Ç�� À��ø ×þ Â��Â� T á�Ô�¤� �î ´¨� ߪø¤ ß���Ýû •.´¨� ö� ´¡¤¢ Âþ¥
.Y1 = 1 üµÈð¥�� ý�Î��¤ ßþ� ý�þ�� ø Yn = 2max{Yi−1, Yn−i}Å� •
ų¨ ø Ýþ¤ø� ´¨¢� � E[Yn] � þ ,Yn ß�Ú÷� � õ ¤�ÀÖõ ý� � ý��Î ��¤ Ý� �îüõ ü㨠•.Ý��î �±¨�½õ �¤ E[Xn]
Çþ�Þ÷ Âþ¥ Â�çµõ �� �¤ö� ø Àª�� Rn = i �î ÝþÂ�ðüõ ÂÑ÷ ¤¢ �¤ üµó�� ¤�îßþ� ý�Â� •ü¨Àì ÀÞ½õ c© 1391 ö��� 13 117 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
.Ý�û¢üõ
Zn,i = {Rn = i}
�î ´¨� üúþÀ� ,´¡¤¢ ¬��ä ý�Â� ö�¨×þ ���Þµ�� Âê Õ±Ï •E[Zn,i] = 1/n.
,Ýþ¤�¢ ø •Yn =
n∑
i=1Zn,i(2.max{Yi−1, Yn−i})
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 118 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
.Ýþ¤ø�üõ ´¨¢�� Âþ¥ Õ��Îõ �¤ E[Yn] üê¢�Ê� ý�ûÂ�çµõ ý�ûüðÄþø
E[Yn] = E
n∑
i=1Zn,i(2. max{Yi−1, Yn−i})
=n∑
i=1E[Zn,i(2. max{Yi−1, Yn−i})]
=n∑
i=1E[Zn,i]E[(2.max{Yi−1, Yn−i})]
=n∑
i=1 1nE[(2.max{Yi−1, Yn−i})]
=
2n
n∑
i=1E[(max{Yi−1, Yn−i})]
≤
2n
n∑
i=1(E[Yi−1] + E[Yn−i]).
.´¨� ùÀª ù¢�¢ ßþÂÞ� ö���ä�� ¡� ýø�Æõ�÷ ��±��
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 119 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
:´ª�÷ Ýû Âþ¥ �¤�¬�� ö���üõ �¤ ýø�Æõ�÷ ßþ�
E[Yn] ≤
4
n
n−1
∑
i=1(E[Yi])
Âþ¥ �¤�±ä üµÈð¥�� ý�Î��¤ Û¬�� �î ¢�¢ ö�È÷ ö���üõ ý¤�Áðý�� ©ø¤ ¥� ù¢�Ôµ¨� ��:´¨�
E[Yn] ≤
14
n + 33
�î Ý�û¢üõ ö�È÷ ßþÂÞ� ¤¢ ,ñ�õÂê ßþ� ��±�� ý�Â�
n−1∑
i=0
i + 33
=
n + 33
:Ýþ¤�¢ Y1 ý�Â� �Àµ�� ¤¢1 = Y1 = E[Y1] ≤ 14
1 + 33
= 1ü¨Àì ÀÞ½õ c© 1391 ö��� 13 120 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
,Ýþ¤�¢ üÜî ´ó�� ý�Â� .´¨� �ÂÖµ¨� ý�þ�� ßþ� ø
E[Yn] ≤
4
n
n−1
∑
i=0 E[Yi]
=
4
n
n−1
∑
i=0 14
i + 33
=
1n
n−1
∑
i=0
i + 33
=
1n
n + 33
=1
n
(n + 3)!4!(n− 1)!=
14(n + 3)!3!n!
=
14
n + 33
.
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 121 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%�î Ý�÷�¢üõ éÂÏö� ¥�2E[xn] ≤ E[2Xn] = E[Yn] Å�2E[xn] ≤
14
n + 33
=
14.(n + 3)(n + 2)(n + 1)6
=n3 + 6n2 + 11n + 624 .Ý�µ¨��¡üõ �îö�Þû ,E[Xn] = O(lg n) ,´ª�¢ Ý�û��¡ ÝþÂ�Ú� ݵþ¤�Úó ß�êÂÏ ¥� Âð� �î,ßþ�Â���� .Ý��î ´���
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 122 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Â��Â� ¢�ªüõ �µ¡�¨ ÂÊ�ä n �� üê¢�Ê� �¤�¬�� �î �.¢.¢ ×þ á�Ô�¤� ß�Ú÷��õ :��Ìì.´¨� O(lg n)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 123 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ôÂû ,(Priority Queue) ´þ�óø� Ó¬
CLRS ��µî 6/5 Ç¿� ¥�ñ�Þä� ý�Â� ý¤�µ¡�¨ù¢�¢�¤¢ •ÂÊ�ä (ßþÂ�×��î) ßþÂ�ï¤Ã� éÁ� •ÂÊ�ä ×þ À�Üî ¤�ÀÖõ (Çû�î) Çþ�Ãê� •O(lg n) ¤¢ �Þû
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 124 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(ÓþÂã�) ôÂû �þ ´þ�óø� Ó¬
(complete binary tree) Ûõ�î üþø¢ø¢ ´¡¤¢ ×þ.À÷�ùÀª ùÀ�� ²� ´Þ¨ ¥� ö� ¡� ¼Î¨ ý�ûïÂ�.´Æ�÷ Â�×��î Ç÷�À÷¥Âê ý�ûÀ�Üî ¥� ÂÊ�ä Âû À�Üî� � � È � � ô û ,(Partially Ordered Tree) ° � õ� Þ � ÷ ´ ¡¤¢ ¤� µ ¡� ¨ù¢�¢ ß þ� � �À�þ�ðüõ Ã�÷ max-priority queue �þ ,(max-heap).´¨� (min-heap) ���Þî ôÂû �� ÂÒ��µõ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 125 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
1
2 3
4 5 6 7
8 9 10
1 2 3 4 5 6 7 8 9 10
1
7 9
14 10
42
2
16
1
8
16 14 10 8 7 9 2 2 4���È�� ôÂû ×þ
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 126 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(�ûüðÄþø) ���È�� ôÂû.´¨� ÂÊ�ä ßþÂ�ï¤Ã� �Èþ¤ •.´¨� blg nc ÂÊ�ä n �� (���Þî �þ ���È��) ôÂû ×þ á�Ô�¤� •.À÷�ªüõ ô�¹÷� lg n ý�±�Âõ ¥� À�Üî Çþ�Ãê� ø ßþÂ�ï¤Ã� éÁ� ,�¤¢ ñ�Þä� •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 127 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
2k − 1
k − 1
ùÂð n �� ôÂû á�Ô�¤�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 128 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
ôÂû ý¥�¨ù¢���
A[1..n] ý�þ�¤� •A[1] ¤¢ �Èþ¤ •(2i ≤ n Âð�) A[2i]¤¢ ô�i ÂÊ�ä ²� À÷¥Âê •(2i + 1 ≤ n Âð�) A[2i+1] ¤¢ ö� ´¨�¤ À÷¥Âê •
A[bi2c] ¤¢ ©¤À� •
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 129 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Parent (i)1 return b i
2c
LeftChild (i)1 return 2i
RightChild (i)1 return 2i + 1
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 130 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
À�Üî Çþ�Ãê�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 131 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
1 1098765432
1
2 3
4 5 6 7
8 9 10
1
2 3
4 5 6 7
8 9 10
1 2 3 4 5 6 7 8 9 10
1
7 9
14 10
2
2
16
1
8
7 9
15 10
82
2
16
1
14
16 14 10 8 7 9 2 2 1
15
15
16 15 10 14 7 9 2 2 8
À�Üî Çþ�Ãê�ü¨Àì ÀÞ½õ c© 1391 ö��� 13 132 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Max-Heap-Increase-Key (A, i, key)1 if key < A[i]2 then error “new key is smaller than the current key”3 A[i]← key4 while i > 1 and A[i] > A[Parent(i)]5 do swap(A[i], A[Parent(i)] )6 i← Parent(i)]
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 133 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�¤¢
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 134 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
1 2 3 4 5 6 7 8 9 10 11
1
2 3
4 5 6 7
8 9 10 11
1 2 3 4 5 6 7 8 9 10 11
1
2 3
4 5 6 7
8 9 10 11
2 2 4 1 7
7 9
14 10
42
2
16
1
8
15
16 14 10 8 7 9 2 2 4 1 15
14
15
9
10
42
2
16
1
8
7
16 15 10 8 14 9
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 135 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Max-Heap-Insert (A, key)1 length[A]← length[A] + 12 A[length[A]]← −∞3 Max-Heap-Increase-Key(A, length[A], key)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 136 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
���È�� ôÂû �� A[i..length[A]] ÛþÀ±�
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 137 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
���È�� ôÂû �� A[i..length[A]] ÛþÀ±�
Max-Heapify (A, i)1 l ← LeftChild (i)2 r ← RightChild (i)3 if l ≤ length[A] and A[l] > A[i]4 then bigchild← l5 elsebigchild← i6 if r ≤ length[A] and A[r] > A[bigchild]7 then bigchild← r8 if bigchild 6= i9 then swap (A[i], A[bigchild])
10 Max-Heapify (A, bigchild)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 138 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
���È�� ôÂû �� �þ�¤� ×þ ÛþÀ±�
1 2 3 4 5 6 7 8 9 10
3 6 1 9 18 9 18 57 8
3 6 1 18 9 5 7
3 6 9 5 7918
9
181
3 9 5 718 18 1 96
8
8
8
9 57 718 118 9 36
18
9 57 7183 18 9 61
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 139 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
���È�� ôÂû �� �þ�¤� ×þ ÛþÀ±�
Build-Heap (A)
1 for i← blength[A]
2 c downto 12 do Heapify(A, i)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 140 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
���È�� ôÂû ÂÊ�ä ßþÂ�ï¤Ã� éÁ�
1
2 3
4 5 6 7
8 9 10
1 2 3 4 5 6 7 8 9 10
7 914 10
42 216
1816 14 10 8 7 9 2 2 4 1
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 141 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
4 5 6 7
8 9
1
2 3
4 5 6 7
8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1
2 3
4 27 914 10
42 28 114821 10 7 9 2 414 8 2 1
14 10 8 7 9 2 2 417 9 10
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 142 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
Heap-Delete-Max (A)1 if length[A] < 12 then error “heap underflow”3 max← A[1]4 A[1]← A[length[A]]5 A[length]← A[length]− 16 Max-Heapify(A, 1)7 return max
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 143 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
�ܽ�
.À�µÆû O(lg n) ¥� ø ôÂû á�Ô�¤� �� °¨��µõ "ôÂû ßµ¡�¨' Ã��� ñ�Þä� ý�Þû
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 144 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(Build-Heap) ôÂû ßµ¡�¨ Û�ܽ�
nbn4c bn2cbn8c
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 145 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
S(i) =
1 i = bn/22c+ 1 . . . bn/2c ¢�Àã� = bn/22c2 i = bn/23c+ 1 . . . bn/22c ¢�Àã� = bn/23c. . . . . .
k i = bn/2k+1c+ 1 . . . bn/2kc ¢�Àã� = bn/2k+1c. . . . . .blg nc i = 1 ¢�Àã� = 1
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 146 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
T (n) ≤blg nc
∑
k=1 kn2k+1 ≤ n/2 ∞∑
i=1 i/2i
∞∑
i=1 i/2i = (1/2) + (1/4 + 1/4) + (1/8 + 1/8 + 1/8) + ... ≤ 2
1/2 + 1/4 + 1/8 + 1/16 + · · · =
12
11− 12
= 11/4 + 1/8 + 1/16 + · · · = 1/21/8 + 1/16 + · · · = 1/4· · · = ..
n �� ×þ¢Ã÷ ôÂû ´¡�¨ ¤¢ �ûËþ�ã� Ûî ¢�Àã� ·î�À� Å�.´¨� O(n) ¥� ´¡�¨ ý��þÃû Ûî ßþ�Â���� øü¨Àì ÀÞ½õ c© 1391 ö��� 13 147 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
!À��î Û� ��ß�Þû.Ýþ¤ø� ´¨¢�� °��Â��� Ý�û��¡üõ �¤ ÂÊ�ä n ¬��ä ßþÂ�×��î ¢Àä k
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 148 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
!À��î Û� ��ß�Þû?¢�¢ ô�¹÷� ö���üõ �¤�î �¤�¬�� ý��±�Âõ �� �� �¤ Âþ¥ ý�û¤�î ôÂû ×þ ¤¢:¢�Àä� ý�Þû âÞ� -:¢Àä ßþÂ�ï¤Ã� lg n ¢�Àã� âÞ� -:ï¤Ã� ¢Àä 10 âÞ� -
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 149 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
!À��î Û� ��ß�Þû?¢�¢ ô�¹÷� ö���üõ �¤�î �¤�¬�� ý��±�Âõ �� �� �¤ Âþ¥ ý�û¤�î ôÂû ×þ ¤¢
n :¢�Àä� ý�Þû âÞ� -
lg2 n ¤¢ :¢Àä ßþÂ�ï¤Ã� lg n ¢�Àã� âÞ� -
O(1) :ï¤Ã� ¢Àä 10 âÞ� -
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 150 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
(heapsort) üõÂû ý¥�¨°�Âõ
Build-Heap (A)
1 for i← blength[A]2 c downto 1
2 do Heapify(A, i)
HeapSort (A)1 Build-Heap(A)2 for i← length[A] downto 23 do swap(A[1], A[length[A]])4 length[A]← length[A]− 15 Heapify (A, 1)
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 151 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢
�ûݵþ¤�Úó� ü÷�±õ ø �û¤�µ¡�¨ù¢�¢'
&
$
%
1 2 3 4 5 6 7 8 9 10
Swap(1,2)
Swap(1,10)
Heapify(1,9)
Heapify(1,6)
Swap(1,9)
Heapify(1,8)
Swap(1,8)
Heapify(1,7)
Swap(1,7)
Swap(1,6)
Heapify(1,5)
Swap(1,5)
Heapify(1,4)
Heapify(1,2)
Swap(1,3)
Heapify(1,3)
Swap(1,4)
7 5 93 97 19 5718 19 367 18
7 1 36 189 9 7 18516 187 1897 5 93
16 18187 5 93 97
18185 93 977 6 1181893 977156
6 181893 977156 181899771 53 6 18189977531
6 18187 5 93 91 76 181893 97751
6 181899771 53
9 57 718 118 9 36
181893 975 71657 1 36 189 9 71816 187 1897 5 39
16 187 187 5 9396 1818
ü¨Àì ÀÞ½õ c© 1391 ö��� 13 152 Â���³õ�î ü¨À�úõ ýùÀØÈ÷�¢