1 Pertemuan 7 Queue dengan Linked-list Matakuliah: T0026/Struktur Data Tahun: 2005 Versi: 1/1
2 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat menghasilkan program modular ADT queue yang diimplementasikan dengan linked list
3 Outline Materi Pengertian dan kegunaan Queue LL Spesifikasi Queue LL Contoh program implementasi Operasi Queue LL
4 Typedef struct elqueue { charname[10]; floatip; struct elqueue*link; } Implementasi Queue dengan Single Linked-List front namaip Dewi 4.0 link namaip Tono 3.8 linknamaip Ani 3.7 NULL link rear
5 Implementasi QUEUE dg Linked List Implementasi QUEUE dengan Linked List typedef int ElemenType; struct Node{ ElemenType data; struct Node *next; }; struct QUEUE{ struct Node *Head; struct Node *Tail; }; struct QUEUE Q; void dequeue(ElemenType *e) {struct Node *P; if (!empty()) { P = Q.Head; Q.Head = Q.Head->next; *e = P->data; free(P);} } void enqueue(ElemenType e) {struct Node *P; P=(struct Node*)malloc(sizeof(struct Node)); P->data = e; P->next = NULL; if(empty()){ Q.Head = Q.Tail = P; } else{Q.Tail->next = P; Q.Tail = P;} } void create() { Q.Head=Q.Tail=NULL; } int empty() {if (Q.Head == NULL) return(1); elsereturn(0); } ( i ) ( ii ) ( iii ) ( iv ) ( v )
6 Implementasi QUEUE dg Linked List H T NULL Create( ) 50 T NULL P H Enqueue(50) 50 T H Enqueue(20) 20 NULL P 50 T H Enqueue(30) 30 NULL P 20 T H Dequeue(*e) 30 NULL P 20 H T NULL Clear( )
7 Basis HPIFO (Highest Priority In First Out), elemen yang diambil / dihapus adalah elemen yang mempunyai prioritas tertinggi (waktu kedatangan tidak menjadi penentu). Priority QUEUE dibedakan atas 2 tipe : –Ascending Priority: Queue diurutkan dengan prioritas yang menaik. –Descending Priority: Queue diurutkan dengan prioritas yang menurun. Representasi Priority QUEUE SET –EnQueue tergantung kepada waktu kedatangan. –EnQUEUE mudah, 1 step –DeQUEUE susah, lama karena harus dilakukan pencarian terhadap data yang mempunyai prioritas tertinggi. LIST –EnQueue berdasarkan prioritasnya. –EnQUEUE susah, lama karena harus mencari posisi yang tepat untuk meletakkan data, sehingga Queue tetap urut berdasarkan prioritasnya. –DeQUEUE mudah, karena elemen yang berada paling depan adalah elemen yang mempunyai prioritas tertinggi / terendah. Priority QUEUE