• Contoh antrian :
Antrian printer
Linked-list
struct TNode{
int data;
TNode *next;
};
2. Pembuatan struct Queue
contoh :
struct Queue{
int count;
TNode *front;
TNode *rear;
};
3. Pembuatan variabel head, tail, front dan rear bertipe TNode.
TNode head,tail,front, rear;
(2) Inisialisasi
Pada Linked List:
Proses inisialisasi dilakukan dengan memberikan nilai awal pada
variabel head, tail front dan rear dengan nilai null.
void inisialisasi(){
head=tail=front=rear=NULL;
}
(3) Cek Kosong
Operasi yang digunakan untuk mengecek
kondisi queue dalam keadaan kosong.
Pada linked list : dapat menggunakan
pengecekan front atau rear jika nilainya null
berarti queue kosong.
Operasi ini harus dapat mengembalikan nilai
true jika queue kosong dan false jika
sebaliknya.
Program “isEmpty” Queue
(Linked List)
bool isEmpty(){
return (rear==NULL);
}
(6) Operasi Dequeue
Dequeue adalah proses pengambilan data
pada queue.
Ketika dequeue terjadi, element pada
queue akan berkurang, yaitu element yang
pertama kali ditambahkan.
Pada linked list : front akan menunjuk pada
node yang ditunjuk oleh head setelah
operasi remove.
(5) Operasi
POP...........(lanjutan)
Langkah-langkah :
1. Pengecekan queue dalam kondisi kosong dengan
memanggil method isEmpty().
2. Data dari element yang diambil akan menjadi return
value (nilai yang dikembalikan)
3. Perubahan nilai pada variabel front dan rear
Program Dequeue (Linked
List)
int dequeue(){
if(!isEmpty()){
int tampungData=front->data;
removeFirst();
front=head;
return tampungData;
}else{
cout<<"queue kosong";
return -1;
}
}
Program removeFirst
void removeFirst(){
TNode *hapus;
if (isEmpty()==0){
if(head!=tail){
hapus = head;
head = head->next;
delete hapus;
} else {
head=tail=NULL;
}
cout<<"terhapus\n";
} else cout<<"Masih kosong\n";
}
(6) Operasi Enqueue
Enqueue adalah proses penambahan
element pada queue.
Ketika enqueue terjadi, element pada
queue akan bertambah 1.
Posisi pointer rear akan bergeser menunjuk
pada element baru yang ditambahkan.
Pada linked list : rear akan menunjuk ke node
baru yang ditunjuk oleh tail.
(6) Operasi
Enqueue...........(lanjutan)
Langkah-langkah :
1. Penambahan element baru pada bagian belakang queue.
2. Perubahan posisi rear.
Program Enqueue (Linked
List) void enqueue(int baru){
addLast(baru);
rear=tail;
front=head;
}
Program addLast
void addLast(int databaru){
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()){
head=baru;
tail=baru;
tail->next = NULL;
}
else {
tail->next = baru;
tail=baru;
}
cout<<"Data masuk\n";
}
(7) Operasi peek