#include<iostream>
#include <locale.h>
using namespace std;
// kuyruk veri yapisi
struct queue{
int boyut;
int *elemanlar;
int ust;
};
// Yeni bir kuyruk olusturma fonksiyonu
queue* createqueue(int boyut)
{
queue *kuyruk = new queue;
kuyruk->boyut = boyut;
kuyruk->ust = -1;
kuyruk->elemanlar = new int[boyut];
return kuyruk;
}
// kuyruk bos mu?
bool isEmpty(queue &kuyruk)
{
if (kuyruk.ust == -1)
return true;
else
return false;
}
//kuyruk dolu mu?
bool isFull(queue &kuyruk)
{
if (kuyruk.ust == kuyruk.boyut-1)
return true;
else
return false;
}
// kuyruka eleman ekle
bool enqueue(queue &kuyruk, int veri)
{
if (isFull(kuyruk) == false)
{
kuyruk.elemanlar[++kuyruk.ust] = veri;
cout<<kuyruk.elemanlar[kuyruk.ust]<<" eklendi. Yeni üst:"<<kuyruk.ust<<endl;
return true;
}
cout<<"kuyruk dolu";
return false;
}
// kuyruktan eleman cikarma
bool dequeue(queue &kuyruk)
{
if (isEmpty(kuyruk) == false)
{
cout<<kuyruk.elemanlar[0]<<" cikarildi"<<endl;
for(int i=0;i<=kuyruk.ust;i++)
{
kuyruk.elemanlar[i] = kuyruk.elemanlar[i+1];
}
kuyruk.ust--;
return true;
}
cout<<"kuyruk zaten bos"<<endl;
return false;
}
// En üst elemani yazdirma
void peek(queue &kuyruk)
{
cout<<"En üst eleman: "<<kuyruk.elemanlar[0]<<", en üst indeks: "<<kuyruk.ust<<endl;
}
// Tüm kuyrugu ekrana yazdir.
void display(queue &kuyruk)
{
if (isEmpty(kuyruk) == false)
{
for (int i = 0; i<=kuyruk.ust; i++)
cout<<kuyruk.elemanlar[i]<<endl;
}
else cout<<"kuyruk bos";
}
main()
{
setlocale(LC_ALL, "Turkish");
// Baslangic adresi kuyruk olan 10 elemanli bir integer kuyruki olusturulsun
queue *kuyruk = createqueue(10);
// kuyruk dolu mu?
//cout<<isEmpty(*kuyruk);
// kuyruk bos mu?
//cout<<isFull(*kuyruk);
// Ekleme
enqueue(*kuyruk, 23);
enqueue(*kuyruk, 21);
enqueue(*kuyruk, 13);
enqueue(*kuyruk, 3);
enqueue(*kuyruk, 11);
enqueue(*kuyruk, 15);
display(*kuyruk);
dequeue(*kuyruk);
dequeue(*kuyruk);
peek(*kuyruk);
dequeue(*kuyruk);
dequeue(*kuyruk);
dequeue(*kuyruk);
dequeue(*kuyruk);
dequeue(*kuyruk);
dequeue(*kuyruk);
}
Bunu beğen:
Beğen Yükleniyor...
İlgili