Мавзу: Steklar va navbatlar. Ularni mantiqiy tasvirlash va ustida amal bajarish algoritmlari



Download 0,74 Mb.
bet3/5
Sana28.11.2022
Hajmi0,74 Mb.
#873801
1   2   3   4   5
Bog'liq
5G6Jq8CKiIvCg2Zczo9wmF9OD7qObgmNhjIpcn6W (1)

Algoritm

  • 1. Agar stek to’lmagan bo’lsa elementlarni kiritamiz. Stekning toq elementlarini saqlab turish uchun yangi b[] massiv e’lon qilamiz.
  • 2. Agar stek bo’sh bo’lmasa, 3-qadamga o’tish, aks holda 4-qadamga o’tish.
  • 3. Stek uchidagi elementni olamiz va juftlikka tekshiramiz. Agar element toq bo’lsa b massivga joylaymiz. 2-qadamga o’tish.
  • 4. b massiv elementlarini teskari tartibda stekka joylash.
  • 5. Stek tarkibini ekranga chiqarish.

#include

  • #include
  • using namespace std;
  • int a[10],R=0,n;//bu yerda n stekka kiritilishi kerak bo'lgan elementlar soni.
  • int kiritish(int s){
  • a[R]=s; R++; }
  • int chiqarish(){ R--;
  • return a[R]; }
  • bool isEmpty(){
  • if(R==0) return true;
  • else return false; }

bool isFull(){

  • bool isFull(){
  • if(R>=10) return true;else return false; }
  • int print(){
  • int i=0,c[n];
  • while(!isEmpty()){
  • c[i]=chiqarish();
  • cout<
  • for(int j=i-1;j>=0;j--) kiritish(c[j]); }

int main(){

  • int main(){
  • int n,s;
  • cout<<"n=";cin>>n;
  • for(int i=0;i
  • if(!isFull()){ cin>>s; kiritish(s);}
  • else{cout<<"stek to'ldi"; n=i;break;} }
  • cout<<"\nstek elementlari: ";
  • print();
  • int b[n],k=0;
  • for(int i=0;i
  • if(s%2!=0) b[k++]=s; }

for(int i=k-1;i>=0;i--) kiritish(b[i]);

  • for(int i=k-1;i>=0;i--) kiritish(b[i]);
  • cout<<"\nnatijaviy stek elementlari: ";
  • print();
  • return 0;
  • }
  • FIFOFirst in - First out. Навбат икки томони очиқ тузилма.
  • En-1
  • E2
  • E1
  • chiqish
  • kirish
  • ёки
  • DEQ - Double Ended Queue. Ikkita cheti ochiq navdat.

Navbat

  • Navbat bu FIFO (First In - First Out - "birinchi kelgan – birinchi ketadi"),shunday o’zgaruvchan uzunlikdagi ketma-ketlik, unda tuzilmaga
  • elementlar faqat navbatning oxiridan qo’shiladi va elementlarni tuzilmadan chiqarish navbat boshidan amalga oshiriladi. Navbat ustida bajariladigan asosiy amallar: yangi element qo’shish, elementni chiqarish, uzunligini aniqlash, navbatni tozalash.

Amallar

  • Navbatga yangi element kiritilayotganda navbat oxiri ko’rsatkichi ko’rsatayotgan adresga yoziladi va shundan keyin navbat oxiri ko’rsatkichi bittaga
  • oshiriladi. Navbatdan elementni o’chirishda navbat boshi ko’rsatkichi ko’rsatayotgan adresdagi element o’chiriladi va shundan keyin bu ko’rsatkichning
  • qiymati bittaga oshiriladi. Navbatga elementlar kiritilganda navbat oxiri ko’rsatkichi shu navbat uchun ajratilgan xotira sohasining oxiriga yetib qoladi.
  • Bunda navbat to’lgan hisoblanadi.

Amallar

  • Agar navbatdan elementlar o’chiriladigan bo’lsa, navbat boshida bo’sh joy ajratiladi. Vaholanki, navbat oxiri ko’rsatkichi chegaraga yetib qolganligi sababli, navbatga yangi element kiritib bo’lmaydi. Shu sababli navbatda har safar element o’chirilganda qolgan barcha elementlar bitta oldinga surilishi kerak bo’ladi. Natijada navbat oxirida bo’sh joy ochiladi. Bu holatda navbat boshi ko’rsatkichiga xojat qolmaydi.

C++ tilida navbatni bir o’lchamli massiv ko’rinishda amalga oshirish

  • Navbat hosil qilish va uni o’zgartirish. 4 ta amal: element kirinish, chiqarish, navbatni bo’shlikka va to’lalikka tekshirish amallari yordamida bajariladi. Masala. Butun sonlardan iborat navbatning juft elementlarini o’chirish dasturini keltiramiz.
  • Algoritm
  • 1. Agar navbat to’lmagan bo’lsa unga element kiritamiz, kiritib bo’lgach keyingi 2-qadamga o’tish, aks holda navbat to’lganligini xabar berib, keyingi
  • 2-qadamga o’tish.

Download 0,74 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish