Pertemuan 9 (Enqueue/Antrean)
Berikan gambaran/ilustrasi dari kasus antrian berikut :
a) Diketahui suatu antrian/queue dengan max = 6
#define MAX 6
typedef struct {
int data[MAX]
int head;
int tail;
} Queue;
Queue Antrian;
0 1 2 3 4 5 Max = 6
head = -1
tail = -1
b) Lakukan Enqueue 4 elemen ke dalam antrian, dimanakah posisi head dan tail?
void Enqueue(int data) {
if(IsEmpty()==1) {
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
printf(“%d masuk!”,antrian.data[antrian.tail);
} else
if(IsFull()==0) {
antrian.tal++;
antrian.data[antrian.tail]=data;
printf(“% masuk!”,antrian.data[antrian.tail]);
}
}
7
|
48
|
4
|
11
|
0 1 2 3 4 5 Max = 6
head = 0 tail = 2 tail = 3 Enqueue(11)
c) Kemudian lakukan Dequeue 2 elemen dari antrean, maka dimana posisi head dan tail?
int Dequeu() {
int I;
int e = antrian.data[antrian.head];
for(i=antrian.head;i<=antrian.tail-1;i++) {
antrian.data[i] = antrian.data[i+1];
}
antrian.tail--;
return e;
}
4
|
11
|
0 1 2 3 4 5
head = 0 tail = 1 Max = 6 Maju semua tail—
d) Dari keadaan diatas, bagaimanakah kondisi IsFull dan IsEmpty nya?
Kondidi IsFull
int IsFull() {
if(antrian.tail==max-1)
return 1;
else
return 0;
}
7
|
48
|
4
|
11
|
14
|
10
|
0 1 2 3 4 5
head = 0 tail = 5 Max = 6
antrean penuh karena head = 0 tail = max -1
Konsisi IsEmpty
int IsEmpty()
{
if(antrian.tail==-1)
return 1;
else
return 0;
7
|
48
|
4
|
11
|
14
|
10
|
}
0 1 2 3 4 5
head = -1 Max = 6
tail = -1
antrena kosong karena tail = -1
Langganan:
Posting Komentar
(
Atom
)
Tidak ada komentar :
Posting Komentar