Double Endeed Queue

Struktur Data - Pertemuan 8

"Double Endeed Queue"


Dequeue adalah suatu Queue ganda atau Double Ended Queue yaitu suatu list linier atau linier list, yang penambahan dan penghapusan elemennya dapat dilakukan pada kedua sisi ujung list, tetapi tidak dapat dilakukan di tengah-tengah list.

Representasi :

Misal n = 10


Keterangan : - Insert Kiri : masuk dari pintu kiri

                    - Insert Kanan : masuk dari pintu kanan

                    - Delete Kiri : keluar dari pintu kiri

                    - Delete Kanan : keluar dari pintu kanan

Prinsip pada Double Endeed Queue yaitu keluar masuk dari kedua ujung.

Proses Dequeue :

  • AWAL (Inisialisasi)
  • INSERT (Sisip, Masuk, Simpan, Tulis)
  • DELETE (Hapus, Keluar, Ambil, Dilayani)
Kondisi Antrian :


Soal

Buatlah suatu program Animasi Deque dengan 6 buah pilihan : INSERT KIRI, INSERT KANAN, DELETE KIRI, DELETE KANAN, CETAK ANTRIAN, QUIT. 

Program :

#include<iostream>
#include<conio.h>
#include<stdlib.h>
#define n 10
using namespace std;

void INSERT();
void DELETE();
void CETAKLAYAR();
void Inisialisasi();
void RESET();
int PIL,F,R;
char PILIHAN [1],HURUF;
char Q[n];
int main ( )
{
     Inisialisasi();
     do
     {
           cout<<" ANIMASI QUEUE"<<endl;
           cout<<"=============="<<endl;
           cout<<"1. INSERT"<<endl;
           cout<<"2. DELETE"<<endl;
           cout<<"3. CETAK QUEUE"<<endl;
           cout<<"4. QUIT"<<endl;
           cout<<"PILIHAN : "; cin>>PILIHAN;
           PIL=atoi(PILIHAN);
           switch (PIL)
           {
           case 1:
                INSERT ();
                break;
           case 2:
                DELETE();
                break;
           case 3:
                CETAKLAYAR ();
                break;
           default:
                cout<<"TERIMA KASIH"<<endl;
                break;
           }
           cout<<"press any key to continue"<<endl;
           getch();
           system("cls");
     }
     while (PIL<4);
}
void INSERT()
{
      if(R<n-1)
      {
           cout<<endl<<"MASUKAN 1 HURUF : ";
         cin>>HURUF;
         Q[++R]=HURUF;
}
else
    cout<<"Antrian Penuh"<<endl;
}

void CETAKLAYAR()
{
     if(F<R+1)
     {
           for (int i=F;i<=R;i++)
                cout<<"Q["<<i<<"] = "<<Q[i]<<endl;
     }
     else
           cout<<"Antrian Kosong"<<endl;
}
void DELETE()
{
     if(F<=R+1)
     {
           HURUF=Q[F];
           Q[F++]='';
           cout<<"Data yang diambil : "<<HURUF<<endl;
           if(F==n)
                RESET();
     }
     else
           cout<<"Antrian Kosong"<<endl;
}
void Inisialisasi()
{
     F=0;
     R=-1;
}

void RESET()
{
     F=0;
     R=-1;

}

Komentar

Postingan Populer