Matakuliah Tahun Versi : T0026/Struktur Data : 2005 : 1/1 Pertemuan 7 Queue dengan Linked-list 1 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mahasiswa dapat menghasilkan program modular ADT queue yang diimplementasikan dengan linked list 2 Outline Materi • • • • Pengertian dan kegunaan Queue LL Spesifikasi Queue LL Contoh program implementasi Operasi Queue LL 3 Implementasi Queue dengan Single Linked-List front nama Tono ip link 3.8 nama ip link nama Dewi 4.0 Ani ip link 3.7 NULL rear Typedef struct elqueue { char name[10]; float ip; struct elqueue *link; } 4 Implementasi QUEUE dg Linked List Implementasi QUEUE dengan Linked List typedef int ElemenType; ( i ) void enqueue(ElemenType e) ( iv ) struct Node{ { struct Node *P; ElemenType data; P=(struct Node*)malloc(sizeof(struct Node)); struct Node *next; }; P->data = e; struct QUEUE{ P->next = NULL; struct Node *Head; if(empty()){ Q.Head = Q.Tail = P; } struct Node *Tail; }; else{ Q.Tail->next = P; struct QUEUE Q; Q.Tail = P; }} void create() ( ii ) { Q.Head=Q.Tail=NULL; } int empty() ( iii ) { if (Q.Head == NULL) return(1); else return(0); } void dequeue(ElemenType *e) { struct Node *P; if (!empty()) { P = Q.Head; Q.Head = Q.Head->next; *e = P->data; free(P); }} (v) 5 Implementasi QUEUE dg Linked List H T H T NULL 50 P Create( ) T H 50 NULL 20 P Enqueue(50) NULL Enqueue(20) T H 50 20 30 P 20 30 P Enqueue(30) H T H NULL T NULL NULL Dequeue(*e) Clear( ) 6 Priority QUEUE • 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. • 7
© Copyright 2024 Paperzz