Professional Documents
Culture Documents
E2
E2
ﺯﻣﺎﻥ ﺁﺯﻣﻮﻥ ۲ :ﺁﺫﺭ ﻟﯿﺴﺖﭘﯿﻮﻧﺪﯼ ،ﺻﻒ ،ﭘﺸﺘﻪ ،ﺩﺭﺧﺖ ﺗﻤﺮﯾﻦ ﺳﺮﯼ ﺍﻭﻝ
ﻣﺴﺌﻠەﯼ .۱
ﻧﺸﺎﻥ ﺩﻫﯿﺪ ﯾ ﺻﻒ ﺭﺍ ﺗﻨﻬﺎ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺩﻭ ﭘﺸﺘﻪ ﻣ ﺗﻮﺍﻥ ﻃﻮﺭﯼ ﭘﯿﺎﺩەﺳﺎﺯﯼ ﮐﺮﺩ ﮐﻪ ﻫﺰﯾﻨﻪ ﺳﺮﺷ ﻦ ﻫﺮ ﻋﻤﻞ enqueueﻭ
ⅾequeueﺍﺯ ) O(۱ﺑﺎﺷﺪ.
ﻣﺴﺌﻠەﯼ .۲
ﻟﯿﺴﺖ ﺍﺯ ﺍﻋﻀﺎ ﮐﻪ ﯾ quaⅽkﺩﺍﺩەﺳﺎﺧﺘﺎﺭﯼ ﺍﺳﺖ ﮐﻪ ﻗﺎﺑﻠﯿﺖ ﺻﻒ ﻭ ﭘﺸﺘﻪ ﺭﺍ ﺑﺎ ﻫﻢ ﺩﺍﺭﺩ .ﺩﺭ ﻭﺍﻗﻊ ﺁﻥ ﺭﺍ ﻣ ﺗﻮﺍﻥ ﺑﻪ ﺻﻮﺭﺕ ﯾ
ﺍﺯ ﭼﭗ ﺑﻪ ﺭﺍﺳﺖ ﻧﻮﺷﺘﻪ ﺷﺪەﺍﻧﺪ ،ﻣﺸﺎﻫﺪﻩ ﮐﺮﺩ ﮐﻪ ﺳﻪ ﻋﻤﻞ ﺯﯾﺮ ﺭﺍ ﭘﺸﺘﯿﺒﺎﻧ ﻣ ﮐﻨﺪ:
ﺍﺯ ﺍﯾﻦ ﺩﺍﺩﻩ ﺳﺎﺧﺘﺎﺭ quaⅽkﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ۳ﭘﺸﺘﻪ ﻭ ﺟﺎﻓﻈەﯼ ﺍﺿﺎﻓ ) O(۱ﻃﻮﺭﯼ ﭘﯿﺎﺩەﺳﺎﺯﯼ ﮐﻨﯿﺪ ﮐﻪ ﺯﻣﺎﻥ ﺳﺮﺷ ﻦ ﻫﺮﯾ
ﺍﻋﻤﺎﻝ ﺍﺯ ) O(۱ﺑﺎﺷﺪ .ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺗﻨﻬﺎ ﻧﻮﻉ ﺩﺳﺘﺮﺳ ﺑﻪ ﻫﺮ ﮐﺪﺍﻡ ﺍﺯ ﺍﯾﻦ ۳ﭘﺸﺘﻪ ﺍﺯ ﻃﺮﯾﻖ ﺍﻋﻤﺎﻝ pushﻭ popﻣ ﺑﺎﺷﺪ.
ﻣﺴﺌﻠەﯼ .۳
ﻓﺮﺽ ﮐﻨﯿﺪ nﻭﺭﻭﺩﯼ ﺑﻪ ﯾ ﭘﺸﺘﻪ ﺑﻪ ﺗﺮﺗﯿﺐ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ .ﭘﺸﺘﻪ ﺩﺭ ﻫﺮ ﻣﺮﺣﻠﻪ ﻣ ﺗﻮﺍﻧﺪ ﻋﻤﻞ pushﺭﺍ ﺍﻧﺠﺎﻡ ﺩﻫﺪ ﻭ ﯾ ﻋﻨﺼﺮ
ﺍﺯ ﻭﺭﻭﺩﯼ ﺑﺨﻮﺍﻧﺪ ﻭ ﯾﺎ ﻣ ﺗﻮﺍﻧﺪ ﺑﺎ ﻋﻤﻞ popﯾ ﻋﻨﺼﺮ ﺭﺍ ﺩﺭ ﺧﺮﻭﺟ ﻗﺮﺍﺭ ﺩﻫﺪ .ﺩﺭ ﻧﻬﺎﯾﺖ ﺗﻤﺎﻡ nﻋﻨﺼﺮ ﺍﺯ ﻭﺭﻭﺩﯼ ﻭﺍﺭﺩ ﭘﺸﺘﻪ
ﺷﺪﻩ ﻭ ﺩﺭ ﺧﺮﻭﺟ ﻗﺮﺍﺭ ﻣ ﮔﯿﺮﻧﺪ ﻭ ﺩﻧﺒﺎﻟەﯼ ﺧﺮﻭﺟ ﺗﻮﻟﯿﺪ ﻣ ﺷﻮﺩ .ﺗﻌﺪﺍﺩ ﺩﻧﺒﺎﻟەﻫﺎﯼ ﺧﺮﻭﺟ ﺭﺍ ﮐﻪ ﭘﺸﺘﻪ ﻣ ﺗﻮﺍﻧﺪ ﺗﻮﻟﯿﺪ ﮐﻨﺪ ﺑﯿﺎﺑﯿﺪ.
ﻣﺴﺌﻠەﯼ .۴
ﻣﻨﻈﻮﺭ ﺍﺯ ﻋﻤﻞ getⅯinﺑﺮﮔﺮﺩﺍﻧﺪﻥ ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﻨﺼﺮ ﻭ getⅯaxﺑﺮﮔﺮﺩﺍﻧﺪﻥ ﺑﺰﺭﮔﺘﺮﯾﻦ ﻋﻨﺼﺮ ﺩﺭ ﺩﺍﺩەﺳﺎﺧﺘﺎﺭ ﺍﺳﺖ.
ﺍﻟﻒ( ﺩﺍﺩەﺳﺎﺧﺘﺎﺭﯼ ﺷﺒﯿﻪ ﭘﺸﺘﻪ ﺍﺭﺍﺋﻪ ﺩﻫﯿﺪ ﮐﻪ ﺍﻋﻤﺎﻝ Pushﻭ Popﻭ getⅯinﻭ getⅯaxﺭﺍ ﺩﺭ ﺯﻣﺎﻥ ﺳﺮﺷ ﻦ ) O(۱ﺍﻧﺠﺎﻡ
ﺩﻫﺪ.
ﺏ( ﺩﺍﺩەﺳﺎﺧﺘﺎﺭﯼ ﺷﺒﯿﻪ ﺻﻒ ﺍﺭﺍﺋﻪ ﺩﻫﯿﺪ ﮐﻪ ﺍﻋﻤﺎﻝ enqueueﻭ ⅾequeueﻭ getⅯinﻭ getⅯaxﺭﺍ ﺩﺭ ﺯﻣﺎﻥ ﺳﺮﺷ ﻦ
) O(۱ﺍﻧﺠﺎﻡ ﺩﻫﺪ.
ﻣﺴﺌﻠەﯼ .۵
ﯾ ⅾequeﺩﺍﺩەﺳﺎﺧﺘﺎﺭﯼ ﻣﺎﻧﻨﺪ ﺻﻒ ﺍﺳﺖ ﺑﺎ ﺍﯾﻦ ﺗﻔﺎﻭﺕ ﮐﻪ ﻋﻤﻞ ﺩﺭﺝ ﻭ ﺣﺬﻑ ﺍﺯ ﻫﺮ ﺩﻭ ﻃﺮﻑ ﺩﺭ ﺁﻥ ﺻﻮﺭﺕ ﻣ ﮔﯿﺮﺩ .ﺩﺍﺩﻩ
ﺳﺎﺧﺘﺎﺭ ⅾequeﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﯾ ﺁﺭﺍﯾﻪ ﭘﯿﺎﺩەﺳﺎﺯﯼ ﮐﻨﯿﺪ ﺑﺪﯾﻦﺻﻮﺭﺕ ﮐﻪ ﭼﻬﺎﺭ ﺭﻭﯾﻪ ﺑﺎ ﺯﻣﺎﻥ ﺍﺟﺮﺍﯼ ) O(۱ﺑﻨﻮﯾﺴﯿﺪ ﮐﻪ ﺍﻋﻤﺎﻝ
ﺩﺭﺝ ﻭ ﺣﺬﻑ ﻋﻨﺼﺮ ﺍﺯ ﺩﻭ ﻃﺮﻑ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﻫﻨﺪ.
۱
ﻣﺴﺌﻠەﯼ .۶
ﭘﺸﺘﻪ ﻧﺸﺎﻥ ﺩﻫﯿﺪ ﻣ ﺗﻮﺍﻥ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﯾ ﺁﺭﺍﯾﻪ ﻭ ﺣﺎﻓﻈەﯼ ﺍﺿﺎﻓ ) O(۱ﺩﻭ ﭘﺸﺘﻪ ﺭﺍ ﭘﯿﺎﺩەﺳﺎﺯﯼ ﮐﺮﺩ) .ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺯﻣﺎﻧ ﯾ
ﻧﻤ ﺗﻮﺍﻧﺪ ﻋﻤﻞ Pushﺭﺍ ﺍﻧﺠﺎﻡ ﺩﻫﺪ ﮐﻪ ﮐﻞ ﺁﺭﺍﯾﻪ ﭘﺮ ﺷﺪﻩ ﺑﺎﺷﺪ(
ﻣﺴﺌﻠەﯼ .۷
ﭘﯿﺶ ﭘﺮﺩﺍﺯﺷ ﺍﺯ ) O(n log nﺭﻭﯼ ﯾ ﺩﺭﺧﺖ ﺭﯾﺸەﺩﺍﺭ ﺍﺟﺮﺍ ﮐﻨﯿﺪ ﮐﻪ ﺑﺘﻮﺍﻥ ﭘﺮﺳﻤﺎﻥ ﺯﯾﺮ ﺭﺍ ﺩﺭ ) O(۱ﭘﺎﺳﺦ ﺩﺍﺩ:
ﺁﯾﺎ ﮔﺮەﯼ uﺍﺯ ﺍﺟﺪﺍﺩ ﮔﺮەﯼ vﻫﺴﺖ ﯾﺎ ﺧﯿﺮ؟
ﻣﺴﺌﻠەﯼ .۸
ﺩﺭﺧﺖ ﺯﯾﺮ ﺭﺍ ﺑﻪ ﺷ ﻞ ﺩﺭﺧﺖ ﭼﭗﺗﺮﯾﻦ ﻓﺮﺯﻧﺪ⁃ﺑﺮﺍﺩﺭ ﺭﺍﺳﺖ ﺗﻐﯿﯿﺮ ﺩﻫﯿﺪ ﻭ ﺳﭙﺲ ﭘﯿﻤﺎﯾﺶ ﻣﯿﺎﻥﺗﺮﺗﯿﺐ ﺁﻥ ﺭﺍ ﺑﻪ ﺩﺳﺖ ﺁﻭﺭﯾﺪ .ﺍﯾﻦ
ﭘﯿﻤﺎﯾﺶ ﻣﺸﺎﺑﻪ ﭼﻪ ﭘﯿﻤﺎﯾﺸ ﺩﺭ ﺩﺭﺧﺖ ﺍﺻﻠ ﺍﺳﺖ؟ ﺍﺩﻋﺎﯼ ﺧﻮﺩ ﺭﺍ ﺩﺭ ﺣﺎﻟﺖ ﮐﻠ ﺛﺎﺑﺖ ﮐﻨﯿﺪ.
ﻣﺴﺌﻠەﯼ .۹
ﻫﺮﻡ ﮐﻤﯿﻨﻪ ﺍﯼ ﺷﺎﻣﻞ nﻋﺪﺩ ﺩﺍﺭﯾﻢ .ﺭﻭﺷ ﺍﺭﺍﺋﻪ ﺩﻫﯿﺪ ﮐﻪ ﺑﺘﻮﺍﻧﺪ ﺑﻪ ﭘﺮﺳﺶ ﺯﯾﺮ ﺩﺭ ) O(iﭘﺎﺳﺦ ﺑﺪﻫﺪ:
ﺁﯾﺎ iﺍﻣﯿﻦ ﮐﻮﭼ ﺘﺮﯾﻦ ﻋﺪﺩ ﺍﺯ xﺑﺰﺭﮔﺘﺮ ﺍﺳﺖ ﯾﺎ ﺧﯿﺮ؟
ﻣﺴﺌﻠەﯼ .۱۰
ﻣﺴﺌﻠەﯼ .۱۱
ﺯﺑﺎﻥ Aﺍﺯ nﮐﻠﻤﻪ ﻭ ﺯﺑﺎﻥ Bﺍﺯ mﮐﻠﻤﻪ ﺗﺸ ﯿﻞ ﺷﺪﻩ ﺍﺳﺖ .ﺣﺮﻭﻑ ﺑﻪ ﮐﺎﺭ ﺭﻓﺘﻪ ﺩﺭ ﮐﻠﻤﺎﺕ ﺍﯾﻦ ﺩﻭ ﺯﺑﺎﻥ ﺍﺯ ﻣﺠﻤﻮﻋﻪ ﺣﺮﻭﻑ
ﺍﻟﻔﺒﺎﯼ ﻓﺎﺭﺳ ﺍﺳﺖ .ﺑﻨﺎﺑﺮﺍﯾﻦ ﺣﺪﺍﮐﺜﺮ ۳۲ﺣﺮﻑ ﺩﺍﺭﯾﻢ .ﻣ ﺩﺍﻧﯿﻢ ﻃﻮﻝ ﻫﺮ ﮐﻠﻤﻪ ﺩﺭ ﻫﺮ ﺩﻭﯼ ﺍﯾﻦ ﺩﻭ ﺯﺑﺎﻥ ﺣﺪﺍﮐﺜﺮ ۱۰۰ﺣﺮﻑ ﺍﺳﺖ.
ﻣ ﮔﻮﯾﯿﻢ ﮐﻠﻤەﯼ wﺩﺭ ﺯﺑﺎﻥ Xﯾﺎﻓﺖ ﻣ ﺷﻮﺩ ﺍﮔﺮ ﻭ ﻓﻘﻂ ﺍﮔﺮ ﮐﻠﻤەﺍﯼ ﻣﺎﻧﻨﺪ Sﺩﺭ Xﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﮐﻪ wﭘﯿﺸﻮﻧﺪ Sﺑﺎﺷﺪ.
ﺍﻟ ﻮﺭﯾﺘﻤ ﺍﺯ ﻣﺮﺗﺒەﯼ ) O(m + nﺍﺭﺍﺋﻪ ﺩﻫﯿﺪ ﮐﻪ ﻫﻤەﯼ ﮐﻠﻤﺎﺗ ﺍﺯ ﺯﺑﺎﻥ Bﺭﺍ ﮐﻪ ﺩﺭ ﺯﺑﺎﻥ Aﯾﺎﻓﺖ ﻣ ﺷﻮﻧﺪ ،ﭼﺎﭖ ﮐﻨﺪ.
۲
ﻣﺴﺌﻠەﯼ .۱۲
ﺍﺯ ﭘﯿﻤﺎﯾﺶﻫﺎﯼ ﭘﯿﺶﺗﺮﺗﯿﺐ ،ﻣﯿﺎﻥﺗﺮﺗﯿﺐ ﻭ ﺛﺎﺑﺖ ﮐﻨﯿﺪ ﺍﮔﺮ ) T (nﺯﻣﺎﻥ ﭘﯿﻤﺎﯾﺶ ﺩﺭﺧﺖ ﺩﻭﺩﻭﯾﯽ ﺑﺎ nﺭﺃﺱ ﺑﺎﺷﺪ ،ﺑﺮﺍﯼ ﻫﺮﯾ
ﭘﺲﺗﺮﺗﯿﺐ ﺛﺎﺑﺖ ﮐﻨﯿﺪ ).T (n) ∈ Θ(n
ﻣﺴﺌﻠەﯼ .۱۳
ﻓﺮﺽ ﮐﻨﯿﺪ Tﯾ ﺩﺭﺧﺖ ﺩﻭﺩﻭﯾﯽ ﮐﺎﻣﻞ ﺑﺎ nﮔﺮﻩ ﻭ ﺑﻪ ﺍﺭﺗﻔﺎﻉ log nﺍﺳﺖ .ﻣ ﺧﻮﺍﻫﯿﻢ ﻣﺴﯿﺮ ﺳﺎﺩەﺍﯼ ﺑﯿﻦ ﯾ ﺭﺃﺱ vﺑﻪ ﯾ
ﺭﺃﺱ uﭘﯿﺪﺍ ﮐﻨﯿﻢ .ﮔﺮەﻫﺎﯼ uﻭ vﺩﺍﺩە ﺷﺪەﺍﻧﺪ ﻭ ﻣ ﺩﺍﻧﯿﻢ ﮐﻪ ﻫﺮ ﮔﺮﻩ ﺍﺯ ﺍﯾﻦ ﺩﺭﺧﺖ ﺑﻪ ﮔﺮەﻫﺎﯼ ﻓﺮﺯﻧﺪ ﻭ ﮔﺮەﯼ ﭘﺪﺭ ﺩﺳﺘﺮﺳ ﺩﺍﺭﺩ.
ﺍﯾﻦ ﮐﺎﺭ ﺭﺍ ﺑﺎ ﭼﻪ ﻣﺮﺗﺒەﺍﯼ ﻣ ﺗﻮﺍﻥ ﺍﻧﺠﺎﻡ ﺩﺍﺩ؟
ﻣﺴﺌﻠەﯼ .۱۴
ﺩﺭﺧﺖ ﻣﺒﻨﺎ ﺩﺭﺧﺘ ﺩﻭﺩﻭﯾﯽ ﺍﺳﺖ ﮐﻪ ﻣﺎﻧﻨﺪ ﺗﺮﺍﯼ ،ﻣﺠﻤﻮﻋەﺍﯼ ﺍﺯ ﺭﺷﺘەﻫﺎﯼ ﺳﺎﺧﺘﻪ ﺷﺪﻩ ﺍﺯ ۰ﻭ ۱ﺭﺍ ﻧﺸﺎﻥ ﻣ ﺩﻫﺪ .ﺩﺭ ﺍﯾﻦ ﺩﺭﺧﺖ،
ﻫﺮ ﮔﺮﻩ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﯾ ﺭﺷﺘﻪ ﺍﺳﺖ :ﺑﺮﺍﯼ ﺭﯾﺸﻪ ﺍﯾﻦ ﺭﺷﺘﻪ ﺗﻬ ﺍﺳﺖ .ﺭﺷﺘەﯼ ﻫﺮ ﮔﺮﻩ ﺑﺮﺍﺑﺮ ﺭﺷﺘەﯼ ﭘﺪﺭ ﺍﯾﻦ ﮔﺮﻩ ﺑﻪ ﺍﺿﺎﻓەﯼ ﯾ ﺣﺮﻑ
ﺍﺳﺖ؛ ﺍﯾﻦ ﺣﺮﻑ ﺑﺮﺍﺑﺮ ۱ﺍﺳﺖ ﺍﮔﺮ ﻓﺮﺯﻧﺪ ﺭﺍﺳﺖ ﺑﺎﺷﺪ ﻭ ۰ﺍﺳﺖ ﺍﮔﺮ ﻓﺮﺯﻧﺪ ﭼﭗ ﺑﺎﺷﺪ .ﻫﺮ ﮔﺮﻩ ﻋﻼﻭﻩ ﺑﺮ ﺍﺷﺎﺭەﮔﺮ ﺑﻪ ﻓﺮﺯﻧﺪﺍﻥ ﺭﺍﺳﺖ
ﻭ ﭼﭗ ﺣﺎﻭﯼ ﯾ ﻣﺘﻐﯿﺮ ﻣﻨﻄﻘ ﺍﺳﺖ .ﺍﮔﺮ ﺭﺷﺘەﯼ ﻣﺘﻨﺎﻇﺮ ﺑﺎ ﺍﯾﻦ ﮔﺮﻩ ﺩﺭ ﻣﺠﻤﻮﻋەﯼ ﺭﺷﺘەﻫﺎﯼ ﺩﺭﺧﺖ ﻣﺒﻨﺎ ﻭﺟﻮﺩ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ،ﺍﯾﻦ
ﻣﺘﻐﯿﺮ ۱ﺍﺳﺖ.
ﺩﺭﺧﺖ ﻣﺒﻨﺎﯼ ﺗﻬ ﺩﺭﺝ ﻣ ﮐﻨﯿﻢ. ﺍﻟﻒ( ﺭﺷﺘەﻫﺎﯼ ۱۰۰۰ ،۰۰۰۱ ،۰۰۱۰ ،۰۰۱۱ ،۰۱۰۰ ،۱۱۰۱ﻭ ۱۰۰۱ﺭﺍ ﺑﻪ ﺗﺮﺗﯿﺐ ﺩﺭ ﯾ
ﺩﺭﺧﺖ ﺣﺎﺻﻞ ﺭﺍ ﺭﺳﻢ ﮐﻨﯿﺪ.
ﺏ( ﺍﻟ ﻮﺭﯾﺘﻤ ﻃﺮﺍﺣ ﮐﻨﯿﺪ ﮐﻪ ﺑﺎ ﮔﺮﻓﺘﻦ ﻣﺠﻤﻮﻋەﺍﯼ ﺍﺯ nﺭﺷﺘﻪ ﺍﺯ ۰ﻭ ،۱ﺩﺭﺧﺖ ﻣﺒﻨﺎ ﺭﺍ ﺑﺴﺎﺯﺩ.
ﻣﺴﺌﻠەﯼ .۱۵
ﯾ ﺩﺭﺧﺖ ﺩﻭﺩﻭﯾﯽ ) T = (V, Eﺑﻪ ﻣﺎ ﺩﺍﺩﻩ ﺷﺪﻩ )ﺑﻪ ﺷ ﻞ ﻟﯿﺴﺖ ﻣﺠﺎﻭﺭﺕ( ﻭ ﺭﺃﺱ ﭘﺪﺭ ﺁﻥ ﺭﺍ ﻧﯿﺰ ﺩﺍﺭﯾﻢ .ﻫﻤﭽﻨﯿﻦ ﯾ ﺁﺭﺍﯾەﯼ
xﻧﯿﺰ ﺩﺍﺭﯾﻢ ﮐﻪ ﺑﻪ ﻫﺮ ﮔﺮەﯼ ﺩﺭﺧﺖ ﯾ ﻋﺪﺩ ﻧﺴﺒﺖ ﻣ ﺩﻫﺪ .ﺁﺭﺍﯾەﯼ ﺟﺪﯾﺪ zﺭﺍ ﺍﯾﻦﮔﻮﻧﻪ ﺑﺴﺎﺯﯾﺪ ﮐﻪ ﺑﺮﺍﯼ ﻫﺮ z[u] ،u ∈ Vﺑﺮﺍﺑﺮ
ﻣﺎﮐﺴﯿﻤﻢ ﻣﻘﺎﺩﯾﺮ xﺑﺮﺍﯼ ﻧﻮﺍﺩﮔﺎﻥ (descendants) uﺍﺳﺖ .ﺍﻟ ﻮﺭﯾﺘﻤ ﺧﻄ )) (O(nﺍﺭﺍﺋﻪ ﺩﻫﯿﺪ ﺗﺎ ﺁﺭﺍﯾەﯼ zﺭﺍ ﺗﻤﺎﻣﺎﹰ ﺣﺴﺎﺏ
ﮐﻨﺪ.
۳