QUEUE DALAM BAHASA C

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define Maxsize 7

typedef struct queue

{


    int head;

    int tail;

    int data[Maxsize];

}queue;

void inialisasi(queue *q)

{

    q->head = -1;

    q->tail = -1;


}

int isFull(queue  *q)

{

    if(q->head == 0 &&  q->tail == (Maxsize-1))

        return 1;

    else if((q->head) - (q->tail) == 1)

    {

    return 1;

}


    else

{

return 0;


}

}

int isEmpty(queue *q)

{

    if(q->head == -1 && q->tail == -1)

    {

        return 1;

    }

    else

    {

        return 0;

    }

}


void enQueue (queue *q,int data)

{

    if(isFull(q) ==0)

    {

         if(q->head == -1)

    {

        q->head = q->head +1;


    }

    q->tail = (q->tail + 1)%Maxsize;

    q->data[q->tail] = data;

    }

    else

    {


        printf("Penuh");

    }

}



 void deQueue(queue *q){

 int dataHapus;

 if(isEmpty(q)== 0){

  dataHapus=q->data[q->head];

  printf("Antrian yang keluar %d", dataHapus);

 // q -> data[q -> head] = NULL;

  if(q->head==q->tail){

   q->head=-1;

   q->tail=-1;

  }else{

   q->head=((q->head)+1)%Maxsize;

  }

 }else{

  printf("Data Kosong !\n");

 }

}

void cetak(queue *q)

{

  if(q->head != -1){


 int i;

  for(i=q->head; i<=q->tail; i++){

   printf("\nsisa : %d", q->data[i]);

  }

  printf("\n");

 }else{

  printf("Data Kosong\n");

 }

}


int main()

{



 queue q;

 inialisasi(&q);

 enQueue(&q,10);

 enQueue(&q,9);

 enQueue(&q,12);

 enQueue(&q,11);

 enQueue(&q,11);

 enQueue(&q,11);

 enQueue(&q,11);

 deQueue(&q);

 deQueue(&q);

 cetak(&q);





return 0;


}




Komentar

Postingan populer dari blog ini

Pentingnya Mendapatkan Sertifikasi di Bidang IT/Sebagai Programmer

Pengantar Java Swing Bagian 1

Pengenalan UML