Professional Documents
Culture Documents
)ﺁ( ﺍﻟ ﻮﺭﯾﺘﻤ ﺑﺮﺍﯼ ﭘﯿﺎﺩەﺳﺎﺯﯼ ﺩﺍﺩﻩ ﺳﺎﺧﺘﺎﺭ ﺻﻒ ۱ﺗﻨﻬﺎ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺩﻭ ﭘﺸﺘﻪ ۲ﺍﺭﺍﺋﻪ ﺩﻫﯿﺪ .ﺑﺪﯾﻦ ﻣﻨﻈﻮﺭ ،ﻻﺯﻡ ﺍﺳﺖ ﻋﻤﻠ ﺮﻫﺎﯼ .۱
isEmpty ،dequeue ،enqueueﻭ sizeﺭﺍ ﺑەﮐﻤ ﻋﻤﻠ ﺮﻫﺎﯼ ﭘﺸﺘﻪ ،ﭘﯿﺎﺩەﺳﺎﺯﯼ ﮐﻨﯿﺪ .ﻣﺮﺗﺒﮥ ﺯﻣﺎﻧ ﻫﺮ ﯾ ﺍﺯ
ﻋﻤﻠ ﺮﻫﺎﯼ ﺻﻒ ﺟﺪﯾﺪ ﺭﺍ ﺑﯿﺎﻥ ﮐﻨﯿﺪ.
ﺍﺯ ﺳﻪ ﺭﻭﺵ ﮔﻔﺘﻪ ﺷﺪﻩ ،ﻣﺤﺎﺳﺒﻪ ﯾ )ﺏ( ﻫﺰﯾﻨﮥ ﺳﺮﺷ ﻦ ﻋﻤﻠ ﺮﻫﺎﯼ enqueueﻭ dequeueﮐﻪ ﺩﺭ ﺑﺎﻻ ﺍﺭﺍﺋﻪ ﮐﺮﺩﯾﺪ ﺭﺍ ﺑەﮐﻤ
ﮐﻨﯿﺪ.
ﻟﯿﺴﺖ ﭘﯿﻮﻧﺪﯼ ﯾ ﻄﺮﻓﻪ ۳ﺑﻨﻮﯾﺴﯿﺪ) .ﻓﺮﺽ ﮐﻨﯿﺪ ﺳﺎﺧﺘﺎﺭ ﻟﯿﺴﺖ ﺷﻤﺎ ﺷﺎﻣﻞ ﻫﺮ .۲ﺷﺒﻪ ﮐﺪﯼ ﺑﺮﺍﯼ ﻣﻌﮑﻮﺱ ﮐﺮﺩﻥ ﺗﺮﺗﯿﺐ ﻋﻨﺎﺻﺮ ﯾ
ﺩﻭ ﻣﺘﻐﯿﺮ headﻭ tailﺍﺳﺖ(.
.۳ﻓﺮﺽ ﮐﻨﯿﺪ ﻣ ﺧﻮﺍﻫﯿﻢ ﯾ ﺍﺯ ﺩﺍﻧﺸﺠﻮﯾﺎﻥ ﮐﻼﺱ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ ﻧﻤﺎﯾﻨﺪﮤ ﺩﺍﻧﺸﺠﻮﯾﺎﻥ ﺍﻧﺘﺨﺎﺏ ﮐﻨﯿﻢ .ﺑﺮﺍﯼ ﺍﯾﻦ ﮐﺎﺭ ،ﻫﻤﻪ ﺩﺍﻧﺸﺠﻮﯾﺎﻥ
ﺭﺍ ﺩﻭﺭ ﯾ ﻣﯿﺰ ﺩﺍﯾﺮەﺍﯼ ﮐﻪ ﺻﻨﺪﻟ ﻫﺎﯼ ﺩﻭﺭ ﺁﻥ ﺍﺯ ۱ﺗﺎ ) nﮐﻪ nﻋﺪﺍﺩ ﺩﺍﻧﺸﺠﻮﯾﺎﻥ ﮐﻼﺱ ﺍﺳﺖ( ﺟﻤ ﻣ ﮐﻨﯿﻢ .ﺳﭙﺲ ﯾ ﺗﻮﭖ
ﺑﻪ ﺩﺳﺖ ﻧﻔﺮ kﺍﻡ ﻣ ﺩﻫﯿﻢ .ﺍﯾﻦ ﺗﻮﭖ ﺩﺳﺖ ﺑﻪ ﺩﺳﺖ ﺑﯿﻦ ﺩﺍﻧﺸﺠﻮﻫﺎ ﺑەﺗﺮﺗﯿﺐ ﺟﺎﺑﺠﺎ ﻣ ﺷﻮﺩ ﺗﺎ ﺑﻪ ﺩﺳﺖ ﻧﻔﺮ k + mﺑﺮﺳﺪ .ﺍﯾﻦ ﻓﺮﺩ
ﺣﺬﻑ ﻣ ﺷﻮﺩ ﻭ ﺑﻪ ﻫﻤﯿﻦ ﺗﺮﺗﯿﺐ ،ﺗﻮﭖ ﺩﺳﺖ ﺑﻪ ﺩﺳﺖ ﻣ ﺷﻮﺩ ﺗﺎ ﺩﺭ ﻧﻬﺎﯾﺖ ﺗﻨﻬﺎ ﯾ ﺩﺍﻧﺸﺠﻮ ﺩﻭﺭ ﻣﯿﺰ ﺑﺎﻗ ﺑﻤﺎﻧﺪ ﻭ ﺍﻭ ﺭﺍ ﺑﻪ ﻋﻨﻮﺍﻥ
ﻧﻤﺎﯾﻨﺪﻩ ﺍﻧﺘﺨﺎﺏ ﻣ ﮐﻨﯿﻢ .ﺿﻤﻦ ﭘﯿﺎﺩەﺳﺎﺯﯼ ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﮤ ﻣﻨﺎﺳﺐ ،ﺍﻟ ﻮﺭﯾﺘﻤ ﺑﺮﺍﯼ ﯾﺎﻓﺘﻦ ﻧﻤﺎﯾﻨﺪﻩ ﺩﺭ ﻫﺮ ﮐﻼﺱ ﺍﺭﺍﺋﻪ ﺩﻫﯿﺪ .ﺑﺮﺍﯼ
ﺗﻮﺿﯿﺤﺎﺕ ﺑﯿﺸﺘﺮ ﺑﻪ ﺳﺆﺍﻝ »ﻧﻤﺎﯾﻨﺪﻩ ﮐﻼﺱ« ﺩﺭ ﮐﻮﺋﺮﺍ ﺭﺟﻮﻉ ﮐﻨﯿﺪ.
.۵ﺩﺭ ﺷﻬﺮ ﺗﻬﺮﺍﻥ n ،ﺧﻮﺩﺭﻭﯼ ﺑﺮﻗ ﺑﺎ ﻇﺮﻓﯿﺖﻫﺎﯼ ﻣﺨﺘﻠﻒ ) ciﻇﺮﻓﯿﺖ ﻣﺎﺷﯿﻦ iﺍﻡ ﺍﺳﺖ( ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻭ ﺗﻨﻬﺎ ﯾ ﻣﺮﮐﺰ ﺷﺎﺭﮊ ﺑﺮﺍﯼ ﺍﯾﻦ
ﺧﻮﺩﺭﻭﻫﺎ ﮐﻪ ﺩﺭ ﺍﯾﻦ ﻣﺮﮐﺰ ﻧﯿﺰ ﺗﻨﻬﺎ ﯾ ﺟﺎﯾ ﺎﻩ ﺳﻮﺧﺘﮕﯿﺮﯼ ﻭﺟﻮﺩ ﺩﺍﺭﺩ ﻭ ﯾ ﺧﻮﺩﺭﻭ ﺭﺍ ﺩﺭ ﻫﺮ ﺛﺎﻧﯿﻪ ﺑﻪ ﺍﻧﺪﺍﺯﮤ ۱ﻭﺍﺣﺪ ﺍﻧﺮﮊﯼ ﺷﺎﺭﮊ
ﻣ ﮐﻨﺪ .ﺑﻪ ﺩﻟﯿﻞ ﺍﯾﻦ ﻣﺤﺪﻭﺩﯾﺖ ،ﺧﻮﺩﺭﻭﻫﺎ ﺑﺎﯾﺪ ﺑﻪ ﺗﺮﺗﯿﺐ ﻭﺭﻭﺩﺷﺎﻥ ﺑﻪ ﻣﺮﮐﺰ ﺳﻮﺧﺘﮕﯿﺮﯼ ﮐﻨﻨﺪ ﻭ ﺩﺭ ﺍﯾﻦ ﺯﻣﺎﻥ ،ﺩﯾ ﺮ ﺧﻮﺩﺭﻭﻫﺎ ﺑﺎﯾﺪ
ﻣﻨﺘﻈﺮ ﺑﻤﺎﻧﻨﺪ .ﺑﻪ ﺷﻤﺎ ﺯﻣﺎﻥ ﻭﺭﻭﺩ ﻫﺮ ﺧﻮﺩﺭﻭ ﺑﻪ ﻣﺮﮐﺰ ﺩﺍﺩﻩ ﻣ ﺷﻮﺩ ﻭ ﻻﺯﻡ ﺍﺳﺖ ﺯﻣﺎﻧ ﮐﻪ ﻫﺮ ﮐﺪﺍﻡ ﺧﻮﺩﺭﻭﯼ ﺧﻮﺩ ﺭﺍ ﺷﺎﺭﮊ ﮐﺮﺩﻩ ﻭ ﺍﺯ
ﻣﺮﮐﺰ ﺧﺎﺭﺝ ﻣ ﺷﻮﺩ ﺭﺍ ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ .ﺑﺮﺍﯼ ﺗﻮﺿﯿﺤﺎﺕ ﺑﯿﺸﺘﺮ ﺑﻪ ﺳﺆﺍﻝ »ﺧﻮﺩﺭﻭﻫﺎﯼ ﺑﺮﻗ « ﺩﺭ ﮐﻮﺋﺮﺍ ﺭﺟﻮﻉ ﮐﻨﯿﺪ.
.۶ﺳﻮﺍﻝ ﺍﻣﺘﯿﺎﺯﯼ :ﺩﺭ ﻟﯿﺴﺖ ﭘﯿﻮﻧﺪﯼ ﺩﻭﻃﺮﻓﻪ ۴ﻫﺮ ﻧﻮﺩ ﺣﺎﻭﯼ ﺩﻭ ﻟﯿﻨﮏ ﺍﺳﺖ ﮐﻪ ﯾ ﺑﻪ ﻧﻮﺩ ﻗﺒﻠ ﻭ ﺩﯾ ﺮﯼ ﺑﻪ ﻧﻮﺩ ﺑﻌﺪﯼ ﺍﺷﺎﺭﻩ ﻣﯿ ﻨﺪ.
ﺩﺭ ﻟﯿﺴﺖ ﭘﯿﻮﻧﺪﯼ ﺩﻭ ﻃﺮﻓﻪ ﺑﺎ ﺩﺍﺷﺘﻦ ﺁﺩﺭﺱ ﯾ ﻧﻮﺩ ﻣ ﺗﻮﺍﻥ ﻧﻮﺩ ﻗﺒﻠ ﯾﺎ ﺑﻌﺪﯼ ﺭﺍ ﺑﺎ ﻣﺮﺗﺒﻪ ) Θ(۱ﯾﺎﻓﺖ .ﻫﻤﭽﻨﯿﻦ ﻣ ﺗﻮﺍﻥ ﺑﺎ ﻣﺮﺗﺒﻪ
) Θ(۱ﻧﻮﺩ ﻗﺒﻞ ﯾﺎ ﺑﻌﺪ ﺍﺯ ﻧﻮﺩﯼ ﺭﺍ ﺣﺬﻑ ﻭ ﯾﺎ ﻧﻮﺩ ﺩﯾ ﺮﯼ ﺩﺭﺝ ﻧﻤﺎﯾﯿﻢ .ﺁﯾﺎ ﻣ ﺗﻮﺍﻥ ﻟﯿﺴﺖ ﭘﯿﻮﻧﺪﯼ ﺩﻭﻃﺮﻓەﺍﯼ ﺭﺍ ﺑﺎ ﻧﻮﺩﻫﺎﯾﯽ ﺑﺴﺎﺯﯾﻢ
ﮐﻪ ﻓﻘﻂ ﺣﺎﻭﯼ ﯾ ﻟﯿﻨﮏ ﺑﺎﺷﺪ ﻭ ﺗﻤﺎﻡ ﻋﻤﻠﯿﺎﺕ ﻓﻮﻕ ﺭﺍ ﺑﺎ ﻣﺮﺗﺒﻪ ) Θ(۱ﺍﻧﺠﺎﻡ ﺩﺍﺩ؟ ﺑﻪ ﭼﻪ ﻧﺤﻮﯼ؟
1
Queue
2
Stack
3
Single linked list
4
Doubly linked list