Membuat Program Queue (Antrian) di C++

Program Antrian atau yang bisa kita sebut "Queue"
Penyimpanan data dimana operasi penambahan dilakukan dilakukan diposisi terakhir / ekor (Tail) dan penghapusannya hanya dapat dilakukan pada posisi terdepan / kepala (Head).
Prinsip dari Queue itu sendiri adalah :
􀂃 First In First Out (FIFO)
􀂃 First Come First Serve (FCFS)


Contoh Programnya :
//Program Antrian (Queue & Dequeue)
#include <iostream>
#include <conio>

struct queue{
int data[4];
int head;
int tail;
};

queue Q;

void inisialisasi()
{Q.head = Q.tail = -1;}

int IsEmpty()
{
if (Q.tail == -1)
    {return 1;}
else
    {return 0;}
   }

int IsFull()
{
if (Q.tail == 3)
    {return 1;}
else
    {return 0;}
}

void Enqueue(int nilai)
{if (IsEmpty()==1)
    {Q.head = Q.tail =0;
   Q.data [Q.tail] = nilai;
   cout<<"Data Pertama berhasil ditambahkan";}
else if (IsFull()==1)
    {cout<<"Queue Penuh";}
else
    {Q.tail ++;
   Q.data [Q.tail] = nilai;
   cout<<"Data berhasil";}
   }

void Dequeue()
{if (IsEmpty()==1)
    {cout<<"Kosong";}
else
    {for(int i=Q.head;i<Q.tail;i++)
      {Q.data[i]=Q.data[i+1];}
       Q.tail --;
      cout<<"Data Pertama dihapus";}}

void Print ()
{if (IsEmpty()==1)
    {cout<<"Queue Kosong";}
else
{for(int i=Q.head;i<=Q.tail;i++)
    {cout<<Q.data[i]<<" | ";}
   int i;
   int total=Q.data[i] + Q.data[i+1]+ Q.data[i+2]+Q.data[i+3]+Q.data[i+4];
   cout<<"Total Data : "<<total<<endl;
   int rata2=total/(Q.tail+1);
   cout<<"Rata2 : "<<rata2<<endl;
   }
   }


   main()
   {
       int pilihan, data;
      inisialisasi();
      do{
      clrscr();
      cout<<"1. Enqueue"<<endl;
      cout<<"2. Dequeue"<<endl;
      cout<<"3. Tampil, Hitung Total dan nilai rata2"<<endl;
      cout<<endl;
      cout<<"Pilihan Data : ";
      cin>>pilihan;
      clrscr();

   switch(pilihan)
   {
       case 1:
      {cout<<"Masukkan data: ";
      cin>>data;
      Enqueue(data);
      getch();
      break;
      }

      case 2:
      {Dequeue();
      getch();
      break;}

      case 3:
      {Print();
      getch();
      break;}

   default:
   {cout<<"Tidak ada dalam pilihan"<<endl;
   getch();}}
   }while(pilihan >=1 && pilihan <=3);
   getch();
   }

Klo dapertanyaan, silahkan post di komen yach...
Thax
Label:

Posting Komentar

kalau ingin buat void first (untuk menampilkan nilai pertama), void last(untuk menampilkan nilai terakhir),void searchPosisi(int data) : untuk menampilkan posisi
suatu data, ada pada indeks berapa data tsb berada.
void searchData(int posisi) : untuk menampilkan data yang
ada dalam suatu posisi indeks array. itu bagaimana?? mohon bantuannya...

Kirim email aja,,ntar saya kirim hasilnya

ka bisa bantu buat program circular queue ?

Bisa...kirim email aja,,nanti saya kirimkan contohnya

kak kalau double linked list di tambah dengan circular queue gimana ya ?

MKRdezign

Formulir Kontak

Nama

Email *

Pesan *

Diberdayakan oleh Blogger.
Javascript DisablePlease Enable Javascript To See All Widget