Assignment 4
Assignment 4
ﺗ ﻮ ﺿ ﯿ ﺤ ﺎ ت ﺗ ﮑ ﺎﻟ ﯿ ﻒ :
ﺗﻤﺎم ﺗﮑﺎﻟﯿﻒ ﺑﺎﯾﺪ ﺑﻪ ﻫﻤﺮاه ﻓﺎﯾﻞ ﺻﻮﺗﯽ آﭘﻠﻮد ﺷﻮﻧﺪ ﮐﻪ در آن ﺗﻮﺿﯿﺢ داده ﺷﻮد ﭼﮕﻮﻧﻪ ﺑﻪ ﺟﻮاب ﻫﺮ ﺳﻮال رﺳﯿﺪﯾﺪ.
ﺑﺎ آﭘﻠﻮد ﮐﺮدن ﻓﺎﯾﻞ ﺗﮑﻠﯿﻒ ،ﺷﻤﺎ ﮔﻮاﻫﯽ ﻣﯽدﻫﯿﺪ ﮐﻪ ﺗﻤﺎم ﺟﻮابﻫﺎ را ﺑﺪون ﮐﻤﮏ ﮔﺮﻓﺘﻦ از ﻫﯿﭻ ﻧﺮماﻓﺰار ﮐﻤﮑﯽ و
ﺗﻨﻬﺎ ﺑﺎ اﺳﺘﻔﺎده از ﻣﻨﺎﺑﻊ درﺳﯽ و ﮐﻼسﻫﺎ ﺣﻞ ﮐﺮدهاﯾﺪ .اﺳﺘﻔﺎده از اﺑﺰارﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ ChatGptﯾﺎ ﻧﺮماﻓﺰارﻫﺎی ﻣﺸﺎﺑﻪ
ﻣ ﺠ ﺎز ﻧﯿ ﺴ ﺖ .
.۱
اﻟﻒ :ﻣﻘﺎدﯾﺮ زﯾﺮ را ﺑﻪ ﺗﺮﺗﯿﺐ وارد ﯾﮏ BSTﮐﻨﯿﺪ و درﺧﺖ ﺣﺎﺻﻠﻪ و ﻣﺮاﺣﻞ ﮐﺎر را ﻧﻤﺎﯾﺶ دﻫﯿﺪ) .از ﭼﭗ ﺑﻪ راﺳﺖ
ﺑﺨﻮاﻧﯿﺪ( ) ۳۰ﻧﻤﺮه(
.۲ﯾﮏ اﻟﮕﻮرﯾﺘﻢ ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﯾﮏ اﺷﺎره ﮔﺮ ﺑﻪ رﯾﺸﻪ ﯾﮏ درﺧﺖ دو دوﯾﯽ را ﺑﻪ ﻋﻨﻮان ورودی درﯾﺎﻓﺖ ﮐﺮده و ﻣﻘﺎدﯾﺮ
ﮔﺮه ﻫﺎی درﺧﺖ را ﺑﻪ ﺗﺮﺗﯿﺐ ﺳﻄﻮ ح ﺳﻄﻮ ح level-orderﭼﺎپ ﮐﻨﺪ .ﺗﺮﺗﯿﺐ ﺳﻄﻮ ح اﺑﺘﺪا رﯾﺸﻪ را ﭼﺎپ ﻣﯽ ﮐﻨﺪ،
ﺳﭙﺲ ﺗﻤﺎم ﮔﺮه ﻫﺎی ﺳﻄﺢ ،۱ﭘﺲ از آن ﺗﻤﺎم ﮔﺮه ﻫﺎی ﺳﻄﺢ ۲و ﺑﻪ ﻫﻤﯿﻦ ﺗﺮﺗﯿﺐ اداﻣﻪ ﻣﯽ دﻫﺪ.
ﻧﮑﺘﻪ :ﭘﯿﻤﺎﯾﺶ pre-orderاز ﯾﮏ stackﺑﻪ ﺻﻮرت ﻓﺮاﺧﻮاﻧﯽ ﻫﺎی ﺑﺎزﮔﺸﺘﯽ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ .در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ ﮐﻪ از
ﯾﮏ ﺳﺎﺧﺘﺎر داده دﯾﮕﺮ ﺑﺮای ﭘﯿﺎده ﺳﺎزی level-orderاﺳﺘﻔﺎده ﮐﻨﯿﺪ ) ۳۰ﻧﻤﺮه(
.۳ﯾﮏ ﺗﺎﺑﻊ ﺑﺎزﮔﺸﺘﯽ ﺑﻪ ﻧﺎم printRangeﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﺑﺎ درﯾﺎﻓﺖ ﯾﮏ اﺷﺎره ﮔﺮ ﺑﻪ رﯾﺸﻪ ﯾﮏ ) BSTدرﺧﺖ ﺟﺴﺘﺠﻮی
دودوﯾﯽ( ﯾﮏ ﻣﻘﺪار ﮐﻠﯿﺪ ﭘﺎﯾﯿﻦ و ﯾﮏ ﻣﻘﺪار ﮐﻠﯿﺪ ﺑﺎﻻ ،ﺗﻤﺎم رﮐﻮردﻫﺎﯾﯽ ﮐﻪ ﻣﻘﺎدﯾﺮ ﮐﻠﯿﺪ آن ﻫﺎ ﺑﯿﻦ اﯾﻦ دو ﮐﻠﯿﺪ داده
ﺷﺪه ﻗﺮار دارﻧﺪ را ﺑﻪ ﺗﺮﺗﯿﺐ ﻣﺮﺗﺐ ﺳﺎزی ﺷﺪه ﭼﺎپ ﮐﻨﺪ .ﺗﺎﺑﻊ printRangeﺑﺎﯾﺪ ﺗﺎ ﺣﺪ اﻣﮑﺎن ﮐﻤﺘﺮﯾﻦ ﺗﻌﺪاد ﮔﺮه ﻫﺎ
را در BSTﻣﻼﻗﺎت ﮐﻨﺪ .زﻣﺎن اﺟﺮای ﺗﺎﺑﻊ ﺧﻮد را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ ۴۰) .ﻧﻤﺮه(