You are on page 1of 1

‫ﺗﻤﺮﯾﻦ ﺳﺮﯼ ﺩﻭﻡ‬ ‫ﺳﺎﺧﺘﻤﺎﻥ ﺩﺍﺩﻩ ﻭ ﺍﻟ ﻮﺭﯾﺘﻢﻫﺎ‬

‫ﻣﻬﻠﺖ ﭘﯿﺸﻨﻬﺎﺩﯼ‪ ۷ :‬ﺁﺫﺭ ‪۱۴۰۱‬‬ ‫ﻧﯿﻤﺴﺎﻝ ﺍﻭﻝ ﺳﺎﻝ ﺗﺤﺼﯿﻠ ‪۱۴۰۱−۱۴۰۲‬‬

‫)ﺁ( ﺍﻟ ﻮﺭﯾﺘﻤ ﺑﺮﺍﯼ ﭘﯿﺎﺩەﺳﺎﺯﯼ ﺩﺍﺩﻩ ﺳﺎﺧﺘﺎﺭ ﺻﻒ ‪ ۱‬ﺗﻨﻬﺎ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺩﻭ ﭘﺸﺘﻪ ‪ ۲‬ﺍﺭﺍﺋﻪ ﺩﻫﯿﺪ‪ .‬ﺑﺪﯾﻦ ﻣﻨﻈﻮﺭ‪ ،‬ﻻﺯﻡ ﺍﺳﺖ ﻋﻤﻠ ﺮﻫﺎﯼ‬ ‫‪.۱‬‬
‫‪ 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‬‬

‫ﺻﻔﺤﻪ ‪ ۱‬ﺍﺯ ‪۱‬‬ ‫ﭘﺎﯾﺎﻥ‪.‬‬

You might also like