Queue

Kategori: C , 04 Temmuz 2019 , JanFranco


Queue veri yapısı, stack veri yapısının aksine ilk giren ilk çıkar mantığına dayanır. Bu mantığa FIFO(FIRST IN FIRST OUT) denir. Anlaşılacağı üzere, silme işlemi ilk elemandan başlar. Eleman eklediğimizde sona eklenir. İmplemente edelim. İlk olarak global bir dizi ve iki değişken tanımlayalım:


int queue[N];
int start = 0;
int end = 0;
Eleman ekleyeceğimiz fonksiyonu yazalım:

void enqueue(int number){
    if(end < N){
        queue[end] = number;
        end++;
    }
    else{
        printf("Queue is full!\n");
    }
}
Eleman sileceğimiz fonksiyonu yazalım:

int dequeue(){
    if(start < end){
        return queue[start++];
    }
    else{
        printf("Queue is empty!\n");
    }
}
Elemanları ekrana bastıran fonksiyonu yazalım:

void display(){
    int i;
    for(i=start; i<end; i++){
        printf("%d\n", queue[i]);
    }
}
Tüm kodlar:

#include <stdio.h>
#include <stdlib.h>
#define N 100

int queue[N];
int start = 0;
int end = 0;

void enqueue(int number){
    if(end < N){
        queue[end] = number;
        end++;
    }
    else{
        printf("Queue is full!\n");
    }
}

int dequeue(){
    if(start < end){
        return queue[start++];
    }
    else{
        printf("Queue is empty!\n");
    }
}

void display(){
    int i;
    for(i=start; i<end; i++){
        printf("%d\n", queue[i]);
    }
}

int main() {
    int i;
    for(i=1; i<=10; i++){
        enqueue(i*10);
    }
    for(i=1; i<=5; i++){
        dequeue();
    }
    for(i=1; i<=10; i++){
        enqueue(i*10);
    }
    display();

    return 0;
}


Sonraki Yazı: Graph
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın