ﺑﻪ ﻧﺎم ﺧﺪاوﻧﺪ ﻫﺴﺘﯽﺑﺨﺶ ﯾﮕﺎﻧﻪ داﻧﺸﮕﺎه ﺻﻨﻌﺘﯽ ﺳﺎﺧﺘﻤﺎن دادهﻫﺎ و اﻟﮕﻮرﯾﺘﻢﻫﺎ 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
© Copyright 2025 Paperzz