С++ тилида навбатни бир ўлчамли массив кўринишда амалга оширишга мисол:
Навбат учун 10 та жой ажратилган бўлсин, бунда навбат дастлаб бўшлиги сабабли, навбат охири
кўрсаткичи R=0 бўлади. Навбатга янги элемент қўшиш ва чиқариш алгоритми қуйидагича.
#include
using namespace std;
int a[10],R=0,n;//бу ерда n навбатга киритилиши керак бўлган элементлар сони.
int kiritish(int s){
if(R>=10){ cout<<"navbat to'ldi"; n=R;return 0;}
a[R]=s; R++;
}
int chiqarish(){
int t=a[0];
for(int i=0;i
a[i]=a[i+1];
R--;
return t;
}
Стеклар
Стек бу LIFO (Last In - First Out - "охирги келган – биринчи кетади"), шундай ўзгарувчан узунликдаги
кетма-кетлик, рўйхатки, унда тузилмага элементларни киритиш ва чиқариш амаллари бир томондан, яъни стек
учидан амалга оширилади. Стек устида бажариладиган асосий амаллар:
-
янги элементни қўшиш,
-
элементни ўчириш,
-
стек элементлар сонини аниқлаш,
-
стекни тозалаш.
Стекни статик хотирада вектор кўринишида ифодалашда стек узунлигини кўрсатувчи кўрсаткич
ишлатилади. Бу кўрсаткич стекдаги 1-бўш жойни кўрсатади. Дастлаб хали стек бўшлигида бу кўрсаткич R=0
бўлади. Қуйидаги расмда стекда 6 та элемент мавжудлиги учун R=6 бўлади.
Стекка янги элемент киритилаётганда стек кўрсаткичи (R) кўрсатаётган адресга ёзилади ва шундан
кейин бу кўрсаткич биттага оширилади. Стекдан элементни ўчиришда кўрсаткичнинг қиймати биттага
камайтирилади ва шу адресдаги элемент ўчирилади. Стекни тозалаш амалини бажариш учун стек кўрсаткичи R
га стек учун ажратилган хотира сохасининг бошланғич адреси қиймати берилади. R стек даги элементлар
сонини билдиради.
С++ тилида стекни бир ўлчамли массив кўринишда амалга оширишга мисол:
Стек учун 10 та жой ажратилган бўлсин, бунда дастлаб стек бўшлиги сабабли R=0 бўлади. Стекга янги
элемент қўшиш ва чиқариш алгоритми қуйидагича.
#include
using namespace std;
int a[10],R=0,n;//бу ерда n стекка киритилиши керак бўлган элементлар сони.
Do'stlaringiz bilan baham: |