download

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