Definisi Queue
Queue bisa di artikan antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehidupan sehari-hari, misalnya saat Anda mengantri di loket untuk membeli tiket, saat di bank dan tempat-tempat lainnya. Istilah yang cukup sering dipakai seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu antrian, yang datang terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue
Algoritma
Dalam algoritma ini kita mengunakan rumus lokasi(i)=i
Langkah 1
Menyediakan jumlah maksimal dari antrian
[0] [1] [2] [3] [4]
Langkah 2
Variable “A” masuk dalam antrian
[0] [1] [2] [3] [4]
Langkah 3
variable “B,C,D,E” masuk dalam antrian
[0] [1] [2] [3] [4]
Langkah 4
Variable “ A” di hapus dari antrian
Variable “B” mengisi alamat milik “A” dan begitu juga dengan “C,D,E”
[0] [1] [2] [3] [4]
Langkah 5
Memasukkan elemen variable baru “ F”
[0] [1] [2] [3] [4]
Program c++
#include
#include
#include
#define maks 5
using namespace std;
class antri{
friend ostream& operator<<(ostream&, const antri&);
public:
antri();
int penuh(int);
int kosong(int);
void cetak();
void enqueue(char);
char dequeue();
void enqueue1(char);
private:
char A[maks];
int banyak;
};
ostream& operator<<(ostream& out, const antri& s)
{ cout<<"\n isi queue : ";
for (int i=0;i
antri::antri(){banyak = 0;}
int antri::penuh(int s)
{ return s== maks ? 1:0;}
int antri::kosong(int s)
{ return s== 0 ? 1:0;}
void antri::cetak()
{ cout<
for (int i=0;i
void antri::enqueue(char x)
{
cout<
A[0] = x;
banyak++;
}
else {
for (int i=banyak;i>=0;i--)
A[i+1] = A[i];
A[0] = x;
banyak++;
}
}
char antri::dequeue(){
char temp=A[--banyak];
cout<
return temp;
}
void antri::enqueue1(char x)
{
cout<
A[0] = x;
banyak++;
}
else {
for (int i=banyak;i>=0;i--)
A[i+1] = A[i];
A[0] = x;
banyak++;
}
}
int main(int argc, char *argv[])
{
antri q;
for(char i='A';i<'F';i++) {
q.enqueue(i);
cout< }
char p=q.dequeue();
q.cetak();
cout<
q.enqueue1(i);
cout<
cout<
return EXIT_SUCCESS;
}
Program C++ antrian mengunakan link list
#include
#include
using namespace std;
class antri{
public:
antri();
void tambah(int);
void tambahbelakang(int);
void tampil();
void hapus(int);
private:
int data;
antri *berikut,*p;
};
antri::antri(){
p=NULL;
}
void antri::tambah(int info){
antri *q,*t;
if(p==NULL){
p=new antri;
p->data=info;
p->berikut=NULL;
}else{
q=p;
while(q->berikut != NULL)
q=q->berikut;
t=new antri;
t->data=info;
t->berikut=NULL;
q->berikut=t;
}
}
void antri::tambahbelakang(int nilai){
antri *q,*t;
if( p == NULL ) {
p = new antri;
p->data = nilai;
p->berikut = NULL;
} else {
q = p;
while( q->berikut != NULL )
q = q->berikut;
t = new antri;
t->data = nilai;
t->berikut = NULL;
q->berikut = t;
}
}
void antri::tampil(){
antri *i; for(i=p;i!=NULL;i=i->berikut){
cout<
}
}
void antri::hapus(int target){
antri *q,*r;
q=p;
if(q->data==target){
p=q->berikut;
delete q;
return;
}
r=q;
while(q!=NULL){
if(q->data==target){
r->berikut=q->berikut;
delete q;
return;
}
r=q;
q=q->berikut;
}
}
int main(int argc, char *argv[]) {
cout<<"\t ========================================"<
antri *link=new antri;
int banyak;
cout<<"maksimal antrian: ";
cin>>banyak;
int data[banyak];
for(int i=0;i
cout<cout<
}
link->tampil();
int del;
cout<
cin>>del;
link->hapus(del);
link->tampil();
int belakang;
cout<
cin>>belakang;
link->tambahbelakang(belakang);
link->tampil();
cout<
system("PAUSE");
return EXIT_SUCCESS;
}