Kamis, 04 Juni 2015

QUEUE


  • Pengertian Queue

                Queue adalah kumpulan data dengan penambahan data hanya melalui satu sisi,yaitu sisi blakang dan penghapusan data hanya melalui sisi depan. Queue merupakan salah satu struiktur data yang memiliki sistemkerja FIFO (Fisrt In First Out). Dimana data yang pertama kali masuk maka data tersebut akan keluar lebih dulu.

Di dalam Queue mempunyai dua kata kunci yaitu Head dan Tail. Head adalah penanda urutan paling depan. Tail adalah penanda urutan paling belakang.

  • Deklarasi Queue

                Variabel yang digunakan adalah data, head, tail. Nilai dari head dan tail dimulai dari -1 yang menandakan Queue kosong. Contoh Queue menggunakan  maksimal 5 data.



  • Operasi Queue
  1. IsEmpty : Mengecek apakah Queue kosong atau tidak.
  2. IsFull : Mengecek apakah Queue sudah penuh atau tidak.
  3. EnQueue : Menabah data di Queue.
  4. Dequeue : Mengambil data dari Queue.
  5. Clear : Menghapus data dalam elemn.
  6. View : Meliahat data dalam antrian.
  • IsEmpty
                IsEmpty digunakan untuk mengecek apakah Queue Kosong atau tidak. Indikator bahwa Queue kosong adalah nilai dari head dan tail adalah -1.

  • IsFull

                IsFull digunakan untuk mengecek apakah antrian sudah penuh atau tidak. Indicator kalau Queue penuh adalah nilai tail = max-1

  • Enqueue

                Enqueue digunakan untuk memasukkan data kedalam Queue. Sebelum memasukkan data ke dalam antrian , harus dipastikan apakah antrian penuh atau tidak. Kalau antrian tidak penuh maka dilakukan pengecekan apakah head sudah berada di nilai 0 atau belum.

  • Dequeue

                Dequeue digunakan untuk mengambil data yang sudah masuk di urutan pertama. Sehingga Tinggal membaca data yang ada di posisi head.cek apakah queue kosong atau tidak, jika ada isinya ,setelah data di ambil data dibelakangnya digeser ke depan.

  • Clear

                Clear digunakan untuk menghapus data di dalam queue. Caranay mengubah nilai pada head dan tail menjadi -1.

  • View

                View digunakan untuk melihat data yang didalam Queue. Caranya dengan mambaca data pada indeks yang terdapat diantara head sampai tail.


Contoh Program QUEUE

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#define n 10
int Q[n],L,R,x;
void awal()
{
    R=-1;L=0;
}

void insertkiri()
{
    cout<<"Inputkan data :";cin>>x;
    if (L>0)
    {
        L--;
        Q[L]=x;
    }
    else
        cout<<"Antrian penuh kiri";
}

void insertkanan()
{
    cout<<"Inputkan data :";cin>>x;
    if (R<n-1)
    {
        R++;
        Q[R]=x;
    }
    else
        cout<<"Antrian penuh kiri";
}

void deletekiri()
{
    if (L<R+1)
    {
        x=Q[L];
        L++;
        cout<<x;
    }
    else
        cout<<"Antrian kosong";
}

void deletekanan()
{
    if (L<R+1)
    {
        x=Q[R];
        R--;
        cout<<x;
    }
    else
        cout<<"Antrian kosong";
}


void main()
{
    int pilih;
    char jawab;
    awal();
    jawab='y';
    while ((jawab=='y')||(jawab=='Y'))
    {
     clrscr();
     cout<<"1.INSERT KIRI"<<endl;
     cout<<"2.INSERT KANAN"<<endl;
     cout<<"3.DELETE KIRI"<<endl;
     cout<<"4.DELETE KANAN"<<endl;
     cout<<"5.EXIT"<<endl;
     cout<<"Inputkan pilihan :";cin>>pilih;
     switch (pilih)
     {
        case 1:
            insertkiri();
            break;
        case 2:
            insertkanan();
            break;
        case 3:
            deletekiri();
            break;
        case 4:
            deletekanan();
            break;
        case 5:
            exit;
            break;
     }
     cout<<endl<<"Ulangi proses lagi ? [y/t]";
     cin>>jawab;
    }
}




Referensi : masiyak c++ Tips 

Tidak ada komentar:

Posting Komentar