Double Ended QUEUE (DeQue) 6.3 & 7.3 NESTED LOOP.

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA (10) tree manipulation
Advertisements

Queue (Antrian).
STRUKTUR DATA (7) single linked list circular
bentuknya, yang dapat berubah pada saat runtime.
PERTEMUAN KE-7 Kamis, 14 Oktober QUEUE (Antrian) Queue (Antrian) adalah suatu bentuk khusus dari List Linier dengan operasi penyisipan (insertion)
STACK Budi arifitama.
Linked List Pembuatan Simpul Awal.
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
Queue.
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK.
Struktur Data (Data Structure) – IS 2313
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
Struktur data Stack Bab 2 Buku :.
QUEUE (ANTRIAN).
BAB2 QUEUE 6.3 & 7.3 NESTED LOOP.
Operasi pada pohon biner
BY YOHANA N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked- lis... 1 LINKED LIST.
QUEUE / ANTRIAN Queue / antrian adalah sebuah bentuk list dengan operasi penyisipan hanya dapat dilakukan pada satu sisi yang disebut belakang (REAR) dan.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
LINKED LIST by Yohana N.
Struktur Data List Linear : Linked List (Double Linkedlist)
Algorithm and Data Structures.
Algoritma dan Struktur Data
Pertemuan ketujuh Struktur data st3telkom.ac.id
STRUKTUR DATA tree manipulation
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
Algoritma dan Struktur Data
Universitas Budi Luhur
Program Studi Teknik Informatika
BAB3 QUEUE 6.3 & 7.3 NESTED LOOP.
Sapta Candra Miarsa,S.T.,M.T.
LINKED LIST by Yohana N.
QUEUE Copyright 2008 by Yohana.
QUEUE Dewi Sartika, M.Kom.
QUEUE Denny Agustiawan,M.pd
STRUKTUR DATA STACK.
Program Studi Teknik Informatika
Defri Kurniawan QUEUE Defri Kurniawan
STRUKTUR DATA QUEUE (Antrian)
STACK 6.3 & 7.3 NESTED LOOP.
STACK (Tumpukan).
Program Studi Teknik Informatika
Program Studi Teknik Informatika
Program Studi Teknik Informatika
Linked List BEBERAPA CONTOH SOAL 6.3 & 7.3 NESTED LOOP.
Linked List DELETE 6.3 & 7.3 NESTED LOOP.
QUEUE Pertemuan ke-6 T 0026.
STRUKTUR DATA STACK.
Linked List INSERT KIRI 6.3 & 7.3 NESTED LOOP.
Program Studi Teknik Informatika
Circular QUEUE 6.3 & 7.3 NESTED LOOP.
STACK (Tumpukan).
STACK Yohana Nugraheni.
Linked List 6.3 & 7.3 NESTED LOOP.
Pertemuan 6 Queue dengan Array
QUEUE (ANTRIAN) Queue atau antrian didefinisikan sebagai kumpulan dari obyek-obyek yang homogen dengan operasi penambahan elemen (Enqueue) dan pengambilan.
LINKED LIST by Yohana N Sumber Kepustakaan : yohananugraheni.files.wordpress.com/.../linked-lis...
STRUKTUR DATA LINKED LIST
DEQUE Deque (Deck atau Dequeue) adalah suatu list linier atau linier list, yang penambahan dan penghapusan elemennya dapat dilakukan pada kedua sisi ujung.
Linear Doubly INSERT KIRI
Double STACK 6.3 & 7.3 NESTED LOOP.
Linear Doubly INSERT TENGAH
Linear Doubly Linked List
Algoritma dan Struktur Data
STRUKTUR DATA QUEUE.
Linked List DELETE TENGAH 6.3 & 7.3 NESTED LOOP.
QUEUE (Antrian).
Transcript presentasi:

Double Ended QUEUE (DeQue) 6.3 & 7.3 NESTED LOOP

( ANTRIAN dengan Ujung Ganda ) Double Ended QUEUE ( ANTRIAN dengan Ujung Ganda )

2. 23 3.1 PENDAHULUAN A deque (Double-ended queue) is a linear list in which insertion and deletions are made to or from either end of the structure Jean-Paul Tremblay; “An Introduction To Data Structures with Applications”; McGraw-Hill, 1985 INSERT KIRI INSERT KANAN DELETE KIRI DELETE KANAN Tabung

2. 23 3.1 PENDAHULUAN A deque (Double-ended queue) is a linear list in which insertion and deletions are made to or from either end of the structure Jean-Paul Tremblay; “An Introduction To Data Structures with Applications”; McGraw-Hill, 1985 Kalung manik

x x x 3.2. REPRESENTASI DOUBLE ENDED QUEUE dalam array satu dimensi 2. 23 3.2. REPRESENTASI DOUBLE ENDED QUEUE dalam array satu dimensi 3.2.1. Ilustrasi n-1 0 1 2 3 4 5 6 7 8 9 INSERT KANAN INSERT KIRI x x x Q[ ] DELETE KANAN DELETE KIRI L R

Proses INSERT dan DELETE 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KANAN INSERT KIRI 25 7 12 Q[ ] DELETE KANAN DELETE KIRI L R Proses INSERT dan DELETE 1. INSERT KANAN, Masuk dari kanan 2. INSERT KIRI, Masuk dari kiri 3. DELETE KANAN, keluar dari kanan 4. DELETE KIRI, keluar dari kiri

Kalau ada perintah masuk dari kanan, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 10 X Kalau ada perintah masuk dari kanan, maka akan masuk di elemen nomor : ? dan indeks R akan menunjuk elemen nomor : ?

R maju satu langkah : R = R + 1; 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 10 X R maju satu langkah : R = R + 1;

Isi ditempat yang ditunjuk oleh R : Q[R] = X; 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 10 DELETE KANAN DELETE KIRI L R 10 X Isi ditempat yang ditunjuk oleh R : Q[R] = X;

Kalau ada perintah masuk dari kanan, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 10 DELETE KANAN DELETE KIRI L R 10 X Sehingga : Kalau ada perintah masuk dari kanan, maka akan masuk di elemen nomor : 6 dan indeks R akan menunjuk elemen nomor : 6 Algoritma : R = R + 1; Q[R] = X;

Kalau ada perintah masuk dari kiri, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 10 X Kalau ada perintah masuk dari kiri, maka akan masuk di elemen nomor : ? dan indeks L akan menunjuk elemen nomor : ?

L maju satu langkah : L = L - 1; 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 10 X L maju satu langkah : L = L - 1;

Isi ditempat yang ditunjuk oleh L : Q[L] = X; 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 10 25 7 12 DELETE KANAN DELETE KIRI L R 10 X Isi ditempat yang ditunjuk oleh L : Q[L] = X;

Kalau ada perintah masuk dari kiri, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 10 25 7 12 DELETE KANAN DELETE KIRI L R 10 X Sehingga : Kalau ada perintah masuk dari kiri, maka akan masuk di elemen nomor : 2 dan indeks L akan menunjuk elemen nomor : 2 Algoritma : L = L - 1; Q[L] = X;

Kalau ada perintah keluar dari kanan, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R X Kalau ada perintah keluar dari kanan, maka yang akan keluar adalah isi elemen nomor : ? dan indeks R akan menunjuk elemen nomor : ?

Ambil isi yang ditunjuk oleh R : X = Q[R]; 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 12 X Ambil isi yang ditunjuk oleh R : X = Q[R];

R mundur satu langkah : R = R - 1; 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 12 X R mundur satu langkah : R = R - 1;

isi elemen nomor 5 dihapus untuk keperluan ilustrasi 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 DELETE KANAN DELETE KIRI L R 12 X isi elemen nomor 5 dihapus untuk keperluan ilustrasi

Kalau ada perintah keluar dari kanan, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 12 X Sehingga : Kalau ada perintah keluar dari kanan, maka yang akan keluar adalah isi elemen nomor : 5 dan indeks R akan menunjuk elemen nomor : 4

Kalau ada perintah keluar dari kanan, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 DELETE KANAN DELETE KIRI L R 12 X Kalau ada perintah keluar dari kanan, maka yang akan keluar adalah isi elemen nomor : 5 dan indeks R akan menunjuk elemen nomor : 4 Algoritma : X = Q[R]; R = R - 1; isi elemen nomor 5 dihapus untuk keperluan ilustrasi

Kalau ada perintah keluar dari kiri, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R X Kalau ada perintah keluar dari kiri, maka yang akan keluar adalah isi elemen nomor : ? dan indeks L akan menunjuk elemen nomor : ?

Ambil isi yang ditunjuk oleh L : X = Q[L]; 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 25 X Ambil isi yang ditunjuk oleh L : X = Q[L];

L mundur satu langkah : L = L + 1; 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 25 X L mundur satu langkah : L = L + 1;

isi elemen nomor 3 dihapus untuk keperluan ilustrasi 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 7 12 DELETE KANAN DELETE KIRI L R 25 X isi elemen nomor 3 dihapus untuk keperluan ilustrasi

Kalau ada perintah keluar dari kiri, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 25 7 12 DELETE KANAN DELETE KIRI L R 25 X Sehingga : Kalau ada perintah keluar dari kiri, maka yang akan keluar adalah isi elemen nomor : 3 dan indeks L akan menunjuk elemen nomor : 4 Algoritma : X = Q[L]; L = L + 1;

Kalau ada perintah keluar dari kiri, 2. 23 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KIRI INSERT KANAN 7 12 DELETE KANAN DELETE KIRI L R 25 X Kalau ada perintah keluar dari kiri, maka yang akan keluar adalah isi elemen nomor : 3 dan indeks L akan menunjuk elemen nomor : 4 isi elemen nomor 3 dihapus untuk keperluan ilustrasi

bukan FIFO bukan juga LIFO 2. 24 3.2.2. Prinsip Proses : bukan FIFO bukan juga LIFO tapi keluar masuk dari kedua ujungnya sesuai dengan kesempatan yang ada 3.2.3. Proses. a. AWAL (Inisialisasi) b. INSERT (Sisip, Masuk, Simpan, Tulis) c. DELETE ( Hapus, Keluar, Ambil, Baca)

Algoritma dasar untuk proses AWAL (Inisialisasi), 2. 24 void AWAL(void) { L = 0; R = -1; } Ilustrasi hasil proses awal : n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L -1 L R X

? Kondisi awal : Pada saat ini , proses apa yang bisa dilakukan ? 2. 24 Kondisi awal : n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L Pada saat ini , proses apa yang bisa dilakukan ? a. Insert Kanan b. Insert Kiri c. Delete Kanan d. Delete Kiri ?

Pada saat ini , proses apa yang bisa dilakukan ? 2. 24 Kondisi awal : n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L Pada saat ini , proses apa yang bisa dilakukan ? Jawab : Hanya Insert Kanan R = R + 1; Q[R] = X;

2. 24 Insert Kanan : n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L 25 X

Insert Kanan : R = R + 1; Q[ ] R L 25 X R maju satu langkah n-1 2. 24 Insert Kanan : n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L 25 X R maju satu langkah R = R + 1;

Insert Kanan : Q[R] = X; 25 Q[ ] R L 25 X 2. 24 Insert Kanan : n-1 0 1 2 3 4 5 6 7 8 9 25 Q[ ] R L 25 X Isi ditempat yang ditunjuk oleh R Q[R] = X;

Bagaimana kalau : Insert Kiri ? 2. 24 Bagaimana kalau : Insert Kiri ? n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L 25 X

Bagaimana kalau : Insert Kiri ? 2. 24 Bagaimana kalau : Insert Kiri ? n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R 25 L X L maju satu langkah L = L - 1; Tidak Error

Bagaimana kalau : Insert Kiri ? 2. 24 Bagaimana kalau : Insert Kiri ? n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R 25 L X Isi ditempat yang ditunjuk oleh L Q[L] = X; Error

Algoritma dasar untuk proses INSERT b. Algoritma dasar untuk proses INSERT 2. 25 n-1 0 1 2 3 4 5 6 7 8 9 INSERT KANAN INSERT KIRI x x x Q[ ] DELETE KANAN DELETE KIRI L R b.1. Insert Kiri b.2. Insert Kanan void INSERT_KIRI(void) { L = L - 1; Q[L] = X; } void INSERT_KANAN(void) { R = R + 1; Q[R] = X; }

Algoritma dasar untuk proses DELETE c. Algoritma dasar untuk proses DELETE 2. 25 n 0 1 2 3 4 5 6 7 8 9-1 INSERT KANAN INSERT KIRI x x x Q[ ] DELETE KANAN DELETE KIRI L R c.1. Delete Kiri c.2. Delete Kanan void DELETE_KIRI(void) { X = Q[L]; L = L + 1; } void DELETE_KANAN(void) { X = Q[R]; R = R - 1; }

Tak ada yang bisa diambil B. PENUH 2. 26 3.2.4. Kondisi Antrian A. KOSONG Tak ada yang bisa diambil B. PENUH b1. Penuh Kanan , Tak bisa diisi dari kanan b2. Penuh Kiri, Tak bisa diisi dari kiri C. BISA DIISI c1. Bisa diisi dari Kanan c2. Bisa diisi dari Kiri D. ADA ISINYA Bisa keluar baik dari kanan maupun dari kiri

- Hanya bisa Insert Kanan - Misal nilai X = 25 Ilustrasi Proses : 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L 25 X - Kondisi awal - Hanya bisa Insert Kanan - Misal nilai X = 25 INSERT KANAN

Ilustrasi Proses : Q[ ] L 25 R X INSERT KANAN R maju satu langkah 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] L 25 R X INSERT KANAN R maju satu langkah R = R + 1;

Ilustrasi Proses : Q[ ] L R 25 X Ilustrasi R & L n-1 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] L R 25 X Ilustrasi R & L

Ilustrasi Proses : 25 Q[ ] L R 25 X Isi ditempat yang ditunjuk oleh R 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 25 Q[ ] L R 25 X Isi ditempat yang ditunjuk oleh R R == L antrian hanya berisi satu elemen

Ilustrasi Proses : 25 Q[ ] L R 12 X INSERT KANAN R maju satu langkah 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 25 Q[ ] L R 12 X INSERT KANAN R maju satu langkah R = R + 1;

Ilustrasi Proses : 25 12 Q[ ] L R 12 X 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 25 12 Q[ ] L R 12 X Isi ditempat yang ditunjuk oleh R R - L == 1 antrian berisi 2 elemen

Ilustrasi Proses : 25 12 Q[ ] L R 17 X Misal disi terus n-1 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 25 12 Q[ ] L R 17 X Misal disi terus

Ilustrasi Proses : 25 12 17 Q[ ] L R 17 X 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 25 12 17 Q[ ] L R 17 X Isi ditempat yang ditunjuk oleh R R - L == 1 antrian berisi 2 elemen

Ilustrasi Proses : 25 12 17 10 15 8 Q[ ] L R 8 X Dan seterusnya sampai 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 25 12 17 10 15 8 Q[ ] L R 8 X Dan seterusnya sampai kondisi seperti ini

Ilustrasi Proses : 25 12 17 10 15 8 Q[ ] L R 25 X DELETE KIRI 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 25 12 17 10 15 8 Q[ ] L R 25 X DELETE KIRI Misal satu persatu didelete dari kiri Ambil yang ditunjuk oleh L X = Q[L];

Ilustrasi Proses : 12 17 10 15 8 Q[ ] L R 25 X DELETE KIRI Kemudian : 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 12 17 10 15 8 Q[ ] L R 25 X DELETE KIRI Kemudian : L mundur satu langkah L = L + 1;

Ilustrasi Proses : 12 17 10 15 8 Q[ ] L R 12 X 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 12 17 10 15 8 Q[ ] L R 12 X Dan seterusnya didelete kiri

Ilustrasi Proses : 17 10 15 8 Q[ ] L R 12 X 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 17 10 15 8 Q[ ] L R 12 X Dan seterusnya didelete kiri

Ilustrasi Proses : 17 10 15 8 Q[ ] L R 17 X 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 17 10 15 8 Q[ ] L R 17 X Dan seterusnya didelete kiri

Ilustrasi Proses : 10 15 8 Q[ ] L R 17 X Sampai kondisi seperti ini 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 10 15 8 Q[ ] L R 17 X Sampai kondisi seperti ini

Ilustrasi Proses : X X X Q[ ] L R Ini yang dijadikan ilustrasi n-1 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 X X X Q[ ] L R Ini yang dijadikan ilustrasi

Ilustrasi Proses : 10 15 8 Q[ ] L R 10 X Ambil lagi satu persatu 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 10 15 8 Q[ ] L R 10 X Ambil lagi satu persatu (delete kiri) sampai habis

Ilustrasi Proses : 15 8 Q[ ] L R 10 X Ambil lagi satu persatu 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 15 8 Q[ ] L R 10 X Ambil lagi satu persatu (delete kiri) sampai habis

Ilustrasi Proses : 15 8 Q[ ] L R 15 X Ambil lagi satu persatu 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 15 8 Q[ ] L R 15 X Ambil lagi satu persatu (delete kiri) sampai habis

Ilustrasi Proses : 8 Q[ ] R 15 L X Ambil lagi satu persatu 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 8 Q[ ] R 15 L X Ambil lagi satu persatu (delete kiri) sampai habis

Ilustrasi Proses : 8 Q[ ] L R 15 X L == R 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 8 Q[ ] L R 15 X L == R Antrian hanya berisi 1 elemen

Ilustrasi Proses : 8 Q[ ] L R 8 X Ambil lagi satu persatu 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 8 Q[ ] L R 8 X Ambil lagi satu persatu (delete kiri) sampai habis

Ilustrasi Proses : Antrian kosong Q[ ] R L 8 X L == R + 1, atau 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L 8 X L == R + 1, atau R == L - 1 Antrian kosong

Ilustrasi Proses : 8 Q[ ] L R 15 X Misal bukan Delete Kiri, 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 8 Q[ ] L R 15 X Misal bukan Delete Kiri, Tapi Delete Kanan

Ilustrasi Proses : 8 Q[ ] L R 8 X Ambil yang ditunjuk oleh R X = Q[R]; 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 8 Q[ ] L R 8 X Ambil yang ditunjuk oleh R X = Q[R];

Ilustrasi Proses : 8 Q[ ] R L 8 X R mundur satu langkah R = R -1; n-1 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 8 Q[ ] R L 8 X R mundur satu langkah R = R -1;

Ilustrasi Proses : Antrian kosong Q[ ] R L 8 X L == R + 1, atau 2. 24 n-1 0 1 2 3 4 5 6 7 8 9 Q[ ] R L 8 X L == R + 1, atau R == L - 1 Antrian kosong

3.2.4 KONDISI ANTRIAN a. Kosong b. Penuh c. Bisa Diisi d. Ada Isinya

KONDISI ANTRIAN : A. KOSONG : Gambar no : ? CIRI : ? 2. 26 1 8 R L L R 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 A. KOSONG : Gambar no : ? X X X X L R 4 X L R CIRI : ? 5 R L 6 X X X L R 7 R L R F

KONDISI ANTRIAN : A. KOSONG : Gambar no : CIRI : L == R + 1 atau 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X A. KOSONG : Gambar no : L R 1 5 7 4 X L R CIRI : L == R + 1 atau R == L - 1 5 R L 6 X X X L R 7 R L R F

b1. Penuh Kanan : Gambar no : ? 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X B. PENUH b1. Penuh Kanan : Gambar no : ? L R 4 X CIRI : ? L R 5 R L b2. Penuh Kiri : Gambar no : ? 6 X X X L R CIRI : ? 7 R L R F

b1. Penuh Kanan : Gambar no : 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X B. PENUH b1. Penuh Kanan : Gambar no : L R 6 7 8 4 X L R CIRI : R == n-1 5 R L b2. Penuh Kiri : Gambar no : ? 6 X X X L R CIRI : ? 7 R L R F

b1. Penuh Kanan : Gambar no : 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X B. PENUH b1. Penuh Kanan : Gambar no : L R 6 7 8 4 X L R CIRI : R == n-1 5 R L b2. Penuh Kiri : Gambar no : 6 X X X 1 2 8 L R CIRI : L == 0 7 R L R F

KONDISI ANTRIAN : B. PENUH b3. Penuh Kanan & Kiri : Gambar no : CIRI : 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X B. PENUH b3. Penuh Kanan & Kiri : Gambar no : L R 4 X 8 L R 5 CIRI : R == n-1 && L == 0 R L 6 X X X L R 7 R L R F

c1. Bisa Diisi dari Kanan: Gambar no : ? 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X C. BISA DIISI c1. Bisa Diisi dari Kanan: Gambar no : ? L R 4 X L R CIRI : ? 5 R L b2. Bisa Diisi dari Kiri: Gambar no : ? 6 X X X L R 7 CIRI : ? R L R F

c1. Bisa Diisi dari Kanan: Gambar no : 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X C. BISA DIISI c1. Bisa Diisi dari Kanan: Gambar no : L R 1 2 3 4 X 4 5 L R CIRI : R < n-1 5 R L b2. Bisa Diisi dari Kiri: Gambar no : ? 6 X X X L R 7 CIRI : ? R L R F

c1. Bisa Diisi dari Kanan: Gambar no : 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X C. BISA DIISI c1. Bisa Diisi dari Kanan: Gambar no : L R 1 2 3 4 X 4 5 L R CIRI : R < n 5 R L b2. Bisa Diisi dari Kiri: Gambar no : 6 X X X 3 4 5 L R 6 7 7 CIRI : L > 0 R L

KONDISI ANTRIAN : D. ADA ISInya: Gambar no : ? CIRI : ? 2. 26 1 8 R L 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X D. ADA ISInya: Gambar no : ? L R 4 X L R CIRI : ? 5 R L 6 X X X L R 7 R L

KONDISI ANTRIAN : D. ADA ISInya: Gambar no : L < R+1 CIRI : atau 2. 26 n-1 0 1 2 3 4 5 6 7 8 9 1 8 X X X X X X X X X X R L L R 2 X X X X X X X KONDISI ANTRIAN : L R 3 X X X X D. ADA ISInya: Gambar no : L R 2 3 4 6 8 4 X L R L < R+1 atau L <= R R > L-1 R >= L CIRI : 5 R L 6 X X X L R 7 R L

R == n-1 R < n-1 KONDISI ANTRIAN : A. KOSONG : L == R+1 B. PENUH : 2. 26 A. KOSONG : L == R+1 1 5 7 B. PENUH : b1. Penuh Kanan b2. Penuh Kiri b3. Penuh Kanan & Kiri : R == n-1 6 7 8 : L == 0 1 2 8 8 L==0 && R==n-1 : C. BISA DIISI: c1. dari Kanan c2. dari Kiri R < n-1 : 1 2 3 4 5 : 3 4 5 6 7 L > 0 D. ADA ISINYA : 2 3 4 6 8 L < R+1

Algoritma yang lengkap 2. 29 ? 3.2.5 Algoritma yang lengkap untuk INSERT dan DELETE

Algoritma yang lengkap untuk proses INSERT 2. 29 a.1. Insert Kiri void INSERT_KIRI(void) { if ( L > 0) { L = L - 1; Q[L] = X; } else printf(“Antrian Penuh Kiri”) a.2. Insert Kanan void INSERT_KANAN(void) { if (R < n-1) { R = R + 1; Q[R] = X; } else printf(“Antrian Penuh Kanan”); }

Algoritma yang lengkap untuk proses DELETE b. Algoritma yang lengkap untuk proses DELETE 2. 29 b1. Delete Kiri void DELETE_KIRI(void) { if(L < R+1) { X = Q[L]; } L = L + 1; else printf(“Antrian Kosong”); } b2. Delete Kanan void DELETE_KANAN(void) { if(L < R+1) { X = Q[R]; R = R - 1; } else printf(“Antrian Kosong”); }

3.3 SOAL SOAL LATIHAN MANDIRI 0 1 2 3 4 5 6 7 8 9 2. 30 X X X Q[ ] L R SOAL UNTUK DOUBLE ENDED QUEUE YANG DIILUSTRASIKAN PADA GAMBAR DIATAS. 1. Sebutkan ciri bahwa Queue : a. b. c. d. e. f. g. h. Kosong tak ada isinya PenuhKanan, tak bisa diisi diisi dari kanan Penuh Kiri, Tak bisa diisi dari kiri Penuh Total, Tak bisa diisi baik dari kanan maupun dari kiri. e1. Bisa diisi dari kanan e2. Bisa diisi dari kiri e3. Bisa diisi baik dari kri maupun dari kanan. Hanya bisa diisi dari kanan, dari kiri tak bisa diisi Hanya bisa diisi dari kiri, dari kanan tak bisa diisi Ada isinya

Hanya berisi 10 pengantri 2. 30 i. j. k. l. Hanya berisi 10 pengantri Paling banyak bisa masuk dari kiri, hanya 10 pengantri Paling banyak bisa masuk dari kanan, hanya 10 pengantri Jumlah sisa tempat yang masih bisa diisi dari kanan dan dari kiri hanya ada 10 tempat (elemen) 2. Tulis algoritma dasar untuk: a. b. c. d. e. Inisialisasi. Insert sebuah record dari kanan Insert sebuah record dari kiri Delete sebuah record dari kiri Delete sebuah record dari kanan. 3. Tulis algoritma yang lengkap untuk : a. b, c. d. Insert sebuah record dari kanan Insert sebuah record dari kiri Delete sebuah record dari kanan Delete sebuah record dari kiri.

2. 30 4. A. Tulis algoritma yang lengkap untuk mengisi antrian dari kanan record per record sampai antrian penuh kanan, atau tak bisa diisi lagi dari kanan. B. Tulis algoritma yang lengkap untuk mengisi antrian dari kiri record per record sampai antrian penuh kiri, atau tak bisa lagi diisi dari kiri. 5. A. Tulis algoritma yang lengkap untuk mendelete isi antrian dari kanan record per record sampai antrian kosong B. Tulis algoritma yang lengkap untuk mendelete isi antrian dari kiri record per record sampai antrian kosong. 6. A. Tulis algoritma yang lengkap untuk mengisi antrian dari kanan record per record sebanyak 10 record selama antrian belum penuh kanan. . Apabila antrian sudah penuh kanan, walaupun belum mengisi 10 record, proses pengisian dihentikan. B. Tulis algoritma yang lengkap untuk mengisi antrian dari kiri record per record sebanyak 10 record selama amtrian belum penuh kiri. Apabila antrian sudah penuh kiri, walaupun belum mengisi 10 record, maka proses pengisian harus dihentikan.