for i := 1 to 10 do AddEl (i);
{Навбат элементлари ќийматларини чоп этиш билан навбатни йўќотиш }
while BegQ <> nil do
begin
GatDelEl (Value);
Writeln ( 'Value - ', Value :5 :2 )
end
end.
12.6.4. Стеклар билан ишлаш
Навбатдан фарќ ќилиб, стеклар билан ишлаш учун стек учида битта асосий кўрсаткичга (Тор идентификаторини оламиз) ва стек элементлари учун хотира ажратиш ва бўшатишда ишлатиладиган, битта ќўшимча ваќтинча (Р идентификаторини оламиз) кўрсаткичга эга бўлиш зарур.
Стек яратиш
Бошланѓич ћолат:
Стекнинг биринчи элементи учун хотира ажратиш ва унга ахборот киритиш:
Яратилган элементга Тор стек учини ўрнатиш:
Стек элементини ќўшиш
Бошланѓич ћолат:
Стекнинг янги элементига хотира ажратиш:
Янги элемент ахборот майдонига ахборот киритиш ва у ћамда Тор стекининг «эски» учи ўртасида боѓлиќлик ўрнатиш:
Тор стеки учини элементга ўтказиш:
С тек элементини йўќотиш
Бошланѓич ћолат:
Тор стеки ахборот майдони учидан ахборотни val ўзгарувчисига ўтказиш ва стек учига ёрдамчи Р кўрсаткични ўрнатиш:
Тор стеки учи кўрсаткичини кейинги элементга ўтказиш ва стек «эски» учи эгаллаган хотирани бўшатиш
Мисол тариќасида ўнта элементдан иборат стекни яратиш ва йўќотиш дастурини келтирамиз. Унда стек билан ишлаш учун иккита процедурадан фойдаланилади:
1) Push процедураси, у стек ћолатига боѓлиќ равишда, биринчисини яратади ёки навбатдаги элементни стек учига ќўшади.
2) Рор процедураси, стек учидан ахборотни, кейинчалик унинг хотирасини тозалаш шарти билан, олади.
Навбатларнинг AddE1 ва GetDelEl процедураларидан фарќ ќилиб, Push ва Рор процедураларида стекнинг биринчи элементини яратиш ва охирги элементини йўќотиш ћолларини алоћида ажратиш талаб килинмади, чунки бу ћолларда Тор=nil бошланѓич ќийматига стекнинг навбатдаги элементини ќўшиш ва йўќотишдаги каби операторлар кетма-кетлиги мос келади.
Do'stlaringiz bilan baham: |