Contoh Program Queue Menggunakan Array Bahasa C

#include "stdio.h"
void main()
{ int queue[5];
int depan = -1;
int belakang = -1;
int pilihan, data, i;

do{
printf("MENU\n");
printf("1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n");
printf("Pilihan = "); scanf("%d", &pilihan);
switch (pilihan)
{
case 1: //enqueue
//apakah queue belum penuh?
if (belakang < 4 )
{ printf("Data Masuk = "); scanf("%d", &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;
}
else
printf("Queue penuh!\n");

break;
case 2: //dequeue
//apakah queue belum kosong?
if (depan <= belakang)
{ printf("Data keluar = %d\n", queue[depan]);
depan++;
}
else
printf("Queue kosong!\n");
break;
case 3:
for(i=depan; i<=belakang; i++)
printf("%d ", queue[i]);
printf("\n");
break;
}
}while (pilihan != 4);
}

Artikel terkait:
Queue dengan Liked List
Queue Array Java
Queue Linked List Java
Queue Library Java

6 comments:

  1. pak materi Queue ni buat materi Sd TF-sore besok rabu ta?????

    ReplyDelete
  2. mas, berikut koreksi saya:
    1. front di queue selalu terdepan, index ke-0, maka ga ada front++
    2. ketika dequeue, seharusnya yg diambil data terdepan (sudah bener) tapi abis itu antrian bergeser kedepan satu per satu, akibatnya rearnya yg diencrement bukan front-nya yg di increment
    akibatnya ketika program ini dijalankan setelah mencapai index terakhir, ga bisa enqueue lagi meskipun udah di dequeue karena frontnya indexnya tetap

    selengkapnya ada di blog saya.

    thanks!!

    ReplyDelete
  3. Tks mas, tutorialnya,
    pertanyaan sy:
    bagaimana nysipkan program untuk
    >mengecek cek antrian penuh ?
    >menghapus seluruh antrian
    >mengosongkan semua antrian
    thanks.

    ReplyDelete
  4. - cek antrian penuh: jika count == (size - 1)
    - menghapus seluruh antrian: looping, set semua eleman array dgn nilai 0
    - mengosongkan semua antrian: sptnya sama dgn yg di atas :)

    ReplyDelete