ARRAY TABANLI QUEUE UYGULAMASI

Merhaba arkadaşlar
Bu akşam size basit olarak Queue (kuyruk) veri yapısından bahsetmeye çalışacağım.

Kuyruk veri yapıları tıpkı yığın veri yapıları gibi günlük hayattan esinlenerek adlandırılmıştır. Prensip olarak önce gelen işini önce yaptırır misali "First in First Out"mantığı ile yani "İlk giren ilk çıkar" prensibini dustur edinmiştir. Bu işlemleri uygulamak adına "enqueue,dequeue" gibi fonksiyonları içinde bulundurur. Enqueue veriyi sıra almaya, Dequeue de baş sıradaki veriyi sıradan çıkarmaya yarar. Veriler arası öncelik oluşturmak için addToHead gibi fonksiyonlar kullanılabilir. (Bununla ilgili bir banka uygulaması yapılabilir. VIP ler öne geçsin gibi. ) Ayrıca length,front,rear değişkenleri de kuyruk da kullanılır. Bunlar sırasıyla kuyruk da ne kadar veri var olduğunu,başlangıç daki verinin point edildiği değer ve sondaki verinin point edildiği değer olarak tutulurlar.... Aşağıda ekstra olarak display fonksiyonunu yazdım kuyruk un içinde verilerin dökülmesini sağlamaktadır.

Şimdi bilgisayar terminolojisine dökülmüş haline bir bakalım;







class Queue {
public :
int *veri;
int uzunluk;
int size;
int front;
int rear;
Queue(){
size=5;
uzunluk=0;
front=0;
rear=-1;
this->veri=new int[size];
}

void enqueue(int item) {

if (isEmpty())
{
uzunluk++;
veri[front]=item;
rear++;
}
else if (!isFull())
{
uzunluk++;
if (rear==(size-1))
{
rear=0;
}
else {
rear++;
}
veri[rear]=item;
}
else {
cout<<"Queue is full";
}
}
bool isEmpty(){
if(uzunluk==0)
return true;
else
return false;
}
bool isFull()
{
if(uzunluk==size)
return true;
else
return false;
}
void dequeue(){
front++;
uzunluk--;

}

void display(){

cout<<"------QUEUE DISPLAY----"< if (front>rear)
{
for (int i=front;i< size;i++ ){
cout< }
for (int i=0;i<=rear;i++)
{
cout< }
}
else {
for (int i=front;i<= rear;i++ )
{
cout< }
}
}
};

Yorumlar

  1. selam genç, kodları daha okunabilir paneller içinde yayınlayabilirmisin? Okuması zor oluyoda :)

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

IONIC BAŞLANGIÇ

Cannot resolve the collation conflict between “Turkish_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation

Golang working with interfaces and functions -3