• Tidak ada hasil yang ditemukan

Queue (Antrian) - UNIKOM Kuliah Online

N/A
N/A
Nguyễn Gia Hào

Academic year: 2023

Membagikan "Queue (Antrian) - UNIKOM Kuliah Online"

Copied!
11
0
0

Teks penuh

(1)

QUEUE (ANTRIAN)

(2)

REPRESENTASI DENGAN SLL

Proses penyimpanan elemen queue dalam linked list mirip dengan operasi pada single linked list yang menggunakan penyimpanan tambah akhir dan hapus awal.

4 Depan

5 9 15

Belakang

NULL

(3)

DEKLARASI

Implementasi dalam bahasa C

typedef struct TQueue *PQueue;

typedef struct TQueue{

int data;

PQueue berikutnya;

};

PQueue depan,belakang;

(4)

INISIALISASI

Proses inisialisasi queue yang disimpan dalam bentuk linked list adalah dengan memberikan nilai NULL ke pointer depan dan belakang yang menandakan bahwa pointer depan dan belakang belum menunjuk ke 1 elemen apapun.

Implementasi dalam bahasa C

void inisialisasi(PQueue *depan, PQueue

*belakang) {

*depanNULL;

*belakangNULL;

}

(5)

FUNGSI KOSONG

Untuk memeriksa apakah suatu queue dalam keadaan kosong.

Fungsi ini berguna ketika proses dequeue yaitu ketika sebuah elemen akan diambil, maka harus diperiksa dulu apakah memiliki data atau tidak.

Implementasi dalam bahasa C

int kosong(PQueue depan) {

if(depan==NULL) return 1;

else

return 0;

end if }

(6)

FUNGSI PENUH

Untuk memeriksa apakah memori masih mampu untuk menyimpan data elemen queue.

Langkah – Langkah :

Membuat suatu elemen baru di memori jika pembuatan elemen baru tersebut berhasil berarti memori belum penuh dan jika pembuatan elemen baru gagal dibuat berarti memori sudah penuh.

Jangan lupa untuk menghapus elemen baru yang tadi dibuat agar kondisi memori kembali seperti kondisi sebelum ada penambahan elemen baru.

(7)

Implementasinya dalah bahasa C adalah :

int penuh() {

PQueue baru;

baru(PQueue)malloc(sizeof(TQueue));

if(baru!=NULL) free(baru);

return 0;

else

return 1;

end if }

(8)

ENQUEUE

Dengan menambahkan elemen baru ke posisi paling belakang (sambungkan field berikutnya dari field belakang ke posisi pointer baru).

Proses ini seperti proses penambahan di belakang pada single linked list.

(9)

Implementasinya dalam bahasa C adalah :

void enqueue(PQueue *depan, PQueue *belakang, int data) {

PQueue baru;

if(!penuh())

baru(PQueue)malloc(sizeof(baru));

baru.datadata;

baru.berikutnyaNULL;

if(kosong(*depan)) *depanbaru;

*belakangbaru;

else

(*belakang).berikutnyabaru;

*belakangbaru;

end if else

output("Memori Kosong\n");

end if }

(10)

DEQUEUE

Dengan mengambil data yang ditunjuk pointer depan dan kemudian pointer yang depan tersebut diambil dan kemudian dihapus.

Pointer depan harus berpindah ke elemen antrian berikutnya.

Proses tersebut dilakukan hanya jika linked list tidak kosong. Proses ini mirip dengan proses penghapusan data awal pada single linked list.

(11)

Implementasinya dalam bahasa C adalah :

int dequeue(PQueue *depan, PQueue *belakang) {

PQueue bantu;

int data;

if(!kosong(*depan)) data(*depan).data;

bantu*depan;

*depanbantu.berikutnya;

free(bantu);

if(*depan==NULL) *belakangNULL;

end if

return data;

else

return 0;

end if }

 

Referensi

Dokumen terkait

Aspek-aspek utama yang berkaitan dengan pelaksanaan PSO, yaitu, produksi berita sesuai dengan tema yang dipersyaratkan oleh pemerintah telah dapat dilakukan dengan

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Rangkuman  Simpul pada double linked list terdiri dari bagian data, pointer next dan pointer prev  Operasi pada double linked list terdiri