Assignment4.pdf

‫ﺑﻪ ﻧﺎم ﺧﺪاوﻧﺪ ﻫﺴﺘﯽﺑﺨﺶ ﯾﮕﺎﻧﻪ‬
‫داﻧﺸﮕﺎه ﺻﻨﻌﺘﯽ‬
‫ﺳﺎﺧﺘﻤﺎن دادهﻫﺎ و اﻟﮕﻮرﯾﺘﻢﻫﺎ‬
‫‪Data Structures and Algorithms‬‬
‫ﺷﺮﯾﻒ‬
‫داﻧﺸﮑﺪه ﻣﻬﻨﺪﺳﯽ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫ﺗﻤﺮﯾﻦ ﺳﺮي ‪4‬‬
‫‪ (1‬ﺑﺮاي ﻫﺮ ﯾﮏ از ﻋﺒﺎرات زﯾﺮ‬
‫اﻟﻒ( ) ‪( x  y )  ( y  z‬‬
‫ب( ‪(( x  y )  z  ( y  w))  x‬‬
‫ج( ‪((((a  x  b)  x  c)  x  d )  x  e)  x  f‬‬
‫ﻋﻤﻠﯿﺎت زﯾﺮ را اﻧﺠﺎم دﻫﯿﺪ‪:‬‬
‫‪‬‬
‫درﺧﺖ ﻋﺒﺎرت را ﺑﺴﺎزﯾﺪ‪.‬‬
‫‪‬‬
‫ﻋﺒﺎرت ﭘﯿﺸﻮﻧﺪي ﻣﻌﺎدل را ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪‬‬
‫ﻋﺒﺎرت ﭘﺴﻮﻧﺪي ﻣﻌﺎدل را ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪ (2‬ﻋﺒﺎرت ‪ ab  c  de   f ‬را از ﺣﺎﻟﺖ ﭘﺴﻮﻧﺪي ﺑﻪ ﺣﺎﻟﺖ ﻣﯿﺎﻧﻮﻧﺪي و ﭘﯿﺸﻮﻧﺪي ﺗﺒﺪﯾﻞ ﮐﻨﯿﺪ‪.‬‬
‫‪ (3‬ﺑﺎ اﺳﺘﻔﺎده از اﺳﺘﻘﺮاي ﺳﺎﺧﺘﺎري ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﮐﻪ در ﻫﺮ درﺧﺖ ‪ T‬ﮐﻪ ﺑﺎ روش ﻓﺮزﻧﺪ ﭼﭗ – ﺑﺮادر راﺳﺖ ﻧﻤﺎﯾﺶ داده‬
‫ﺷﻮد‪ ،‬ﺗﻌﺪاد اﺷﺎره ﮔﺮ ﻫﺎي ‪ Null‬ﯾﮑﯽ ﺑﯿﺸﺘﺮ از ﮔﺮه ﻫﺎﺳﺖ ‪.‬‬
‫‪ (4‬ﺗﺎﺑﻌﯽ ﻏﯿﺮ ﺑﺎزﮔﺸﺘﯽ ﺑﺎ زﻣﺎن اﺟﺮاي )‪ O (n‬ﺑﻨﻮﯾﺴﯿﺪ‪ ،‬ﮐﻪ ﺑﻪ ﻋﻨﻮان ورودي درﺧﺘﯽ دودوﯾﯽ ﺑﺎ ‪ n‬ﮔﺮه را ﺑﮕﯿﺮد‪ ،‬و ﺗﻤﺎﻣﯽ‬
‫ﺑﺮﭼﺴﺐ ﻫﺎي آن درﺧﺖ را ﭼﺎپ ﮐﻨﺪ‪ .‬راﻫﻨﻤﺎﯾﯽ ‪ :‬از ﺳﺎﺧﺘﻤﺎن داده ‪ stack‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪ (5‬ﻓﺮض ﮐﻨﯿﺪ در ﯾﮏ درﺧﺖ ﺟﺴﺘﺠﻮي دودوﯾﯽ اﻋﺪاد ﺑﯿﻦ ‪ 1‬ﺗﺎ ‪ 1000‬ذﺧﯿﺮه ﺷﺪه اﻧﺪ و ﻣﯽ ﺧﻮاﻫﯿﻢ ﺑﺒﯿﻨﯿﻢ آﯾﺎ ﻋﺪد ‪363‬‬
‫در اﯾﻦ ﻣﯿﺎن وﺟﻮد دارد ﯾﺎ ﻧﻪ‪ .‬ﮐﺪام ﯾﮑﯽ از دﻧﺒﺎﻟﻪ ﻫﺎي زﯾﺮ ﻧﻤﯽ ﺗﻮاﻧﺪ دﻧﺒﺎﻟﻪ اي از اﻋﺪاد ﺑﺎﺷﺪ ﮐﻪ ﻣﺎ ﺑﺮاي ﭘﯿﺪا ﮐﺮدن ‪363‬‬
‫ﭘﯿﻤﻮده اﯾﻢ؟!‬
‫‪‬‬
‫‪363 ، 397 ، 344 ، 330 ، 398 ، 401 ، 252 ، 2‬‬
‫‪‬‬
‫‪363 ، 258 ، 898 ، 244 ، 911 ، 220 ، 924‬‬
‫‪‬‬
‫‪363 ، 245 ، 912 ، 240 ، 911 ، 202 ، 925‬‬
‫‪‬‬
‫‪363 ، 278 ، 381 ، 382 ، 266 ، 219 ، 387 ، 399 ، 2‬‬
‫‪‬‬
‫‪363 ، 358 ، 392 ، 299 ، 621 ، 347 ، 278 ، 935‬‬
‫‪1‬‬
‫‪ (6‬ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ‪ T‬ﯾﮏ درﺧﺖ ﺟﺴﺘﺠﻮي دودوﯾﯽ اﺳﺖ ﮐﻪ ﻣﻘﺎدﯾﺮ ﮔﺮه ﻫﺎي آن ﻣﺘﻔﺎوت ﻫﺴﺘﻨﺪ‪ .‬اﮔﺮ ‪ x‬ﯾﮏ ﺑﺮگ ﺑﺎﺷﺪ و‬
‫‪ y‬ﭘﺪر آن ﺑﺎﺷﺪ‪ ،‬آﻧﮕﺎه ﻣﻘﺪار ﮔﺮه ‪ y‬ﯾﺎ ﮐﻮﭼﮑﺘﺮﯾﻦ ﻣﻘﺪار در ﮐﻞ درﺧﺖ اﺳﺖ ﮐﻪ از ﻣﻘﺪار ﮔﺮه ‪ x‬ﺑﺰرﮔﺘﺮ اﺳﺖ و ﯾﺎ‬
‫ﺑﺰرﮔﺘﺮﯾﻦ ﻣﻘﺪار در ﮐﻞ درﺧﺖ اﺳﺖ ﮐﻪ از ﻣﻘﺪار ‪ x‬ﮐﻮﭼﮑﺘﺮ اﺳﺖ‪.‬‬
‫‪ (7‬ﯾﮑﯽ از روش ﻫﺎي ﻣﺮﺗﺐ ﺳﺎزي ﺑﺮاي ﺗﻌﺪادي ﻋﺪد اﯾﻦ اﺳﺖ ﮐﻪ اﺑﺘﺪا از آﻧﻬﺎ ﯾﮏ درﺧﺖ ﺟﺴﺘﺠﻮي دودوﯾﯽ ﺑﺴﺎزﯾﻢ )ﺑﺎ‬
‫اﺳﺘﻔﺎده ﻣﮑﺮر از ‪ Tree-Insert‬ﺑﺮاي وارد ﮐﺮدن ﺟﺪاﮔﺎﻧﻪ ﻫﺮ ﻋﺪد( و ﺳﭙﺲ ﺑﺎ اﺳﺘﻔﺎده از روش ﭘﯿﻤﺎﯾﺶ ﻣﯿﺎن ﺗﺮﺗﯿﺐ آﻧﻬﺎ‬
‫را ﭼﺎپ ﮐﻨﯿﻢ‪ .‬زﻣﺎن اﺟﺮاي ﭼﻨﯿﻦ اﻟﮕﻮرﯾﺘﻤﯽ در ﺑﻬﺘﺮﯾﻦ و ﺑﺪﺗﺮﯾﻦ ﺣﺎﻟﺖ ﭼﻘﺪر اﺳﺖ؟‬
‫‪ (8‬ﻧﺸﺎن دﻫﯿﺪ اﮔﺮ ﯾﮏ ﮔﺮه در درﺧﺖ ﺟﺴﺘﺠﻮي دودوﯾﯽ داراي دو ﺑﭽﻪ ﺑﺎﺷﺪ‪ ،‬آﻧﮕﺎه ﮔﺮه ﺑﻌﺪ از آن ) ‪ ( successor‬ﻓﺮزﻧﺪ‬
‫ﭼﭗ ﻧﺪارد و ﮔﺮه ﻗﺒﻞ از آن ) ‪ ( predecessor‬ﻓﺮزﻧﺪ راﺳﺖ ﻧﺪارد‪.‬‬
‫‪2‬‬