Linear Doubly INSERT KIRI Linked List INSERT KIRI 6.3 & 7.3 NESTED LOOP
Menambah simpul baru diujung paling kiri Linked List yang sudah ada 3.08 INSERT KIRI Menambah simpul baru diujung paling kiri Linked List yang sudah ada Disebut juga INSERT AWAL
3.08 LAST FIRST INFO RIGHT RIGHT LEFT LEFT INFO INFO RIGHT LEFT LEFT INFO RIGHT 10 17 12 25 (5) (4) (3) (2) (1) Kalau sudah ada 4 buah simpul, INSERT KIRI akan menginsert simpul yang baru di buat, diujung paling kiri menjadi simpul no. (5)
25 P sudah ada simpul awal sebagai berikut : LAST FIRST RIGHT INFO 3.05 sudah ada simpul awal sebagai berikut : LAST FIRST P RIGHT LEFT INFO 25 (1)
12 25 P akan dibuat simpul baru yang akan diinsert disini LAST FIRST 3.05 akan dibuat simpul baru yang akan diinsert disini LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 12 25 (2) (1) Perhatikan pointer P menujuk simpul yang baru tidak menunjuk simpul yang lama lagi
12 25 P sehingga akan ter-link sebagai berikut : LAST FIRST RIGHT 3.05 sehingga akan ter-link sebagai berikut : LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 12 25 (2) (1)
Algoritma Membuat Simpul Baru Dan INSERT KIRI 3.05 void Awal (void) { int X; scanf(“%i”, &X); P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->LEFT = P; P->RIGHT = LAST; LAST = P; P->LEFT = NULL; } 1) 2) 3) 4) 5) 6) LAST FIRST P RIGHT LEFT RIGHT LEFT INFO INFO 12 25 (2) (1)
Algoritma tahap per tahap 3.05 Algoritma tahap per tahap
25 P = (Simpul *) malloc(sizeof(Simpul)); P LAST (2) (1) P->INFO = X; LAST->LEFT = P; P->RIGHT = LAST; LAST = P; P->LEFT = NULL; 1) 2) 3) 4) 5) 6) 3.05 P = (Simpul *) malloc(sizeof(Simpul)); LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 25 (2) (1) Membuat Simpul (2)
12 25 P->INFO = X; P LAST (2) (1) P->INFO diisi dengan nilai X P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->LEFT = P; P->RIGHT = LAST; LAST = P; P->LEFT = NULL; 1) 2) 3) 4) 5) 6) 3.05 P->INFO = X; LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 12 25 (2) (1) P->INFO diisi dengan nilai X
12 25 LAST->LEFT = P; P LAST (2) (1) P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->LEFT = P; P->RIGHT = LAST; LAST = P; P->LEFT = NULL; 1) 2) 3) 4) 5) 6) 3.05 LAST->LEFT = P; LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 12 25 (2) (1) Pointer LEFT Simpul (1) menunjuk simpul (2)
12 25 P->RIGHT = LAST; P LAST (2) (1) P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->LEFT = P; P->RIGHT = LAST; LAST = P; P->LEFT = NULL; 1) 2) 3) 4) 5) 6) 3.05 P->RIGHT = LAST; LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 12 25 (2) (1) Pointer RIGHT simpul (2) menunjuk simpul (1)
12 25 LAST = P; P (2) (1) Pointer LAST pindah menunjuk simpul terakhir P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->LEFT = P; P->RIGHT = LAST; LAST = P; P->LEFT = NULL; 1) 2) 3) 4) 5) 6) 3.05 LAST = P; LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 12 25 (2) (1) Pointer LAST pindah menunjuk simpul terakhir
12 25 P->LEFT = NULL; P (2) (1) Pointer LEFT simpul (2) diisi NULL P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->LEFT = P; P->RIGHT = LAST; LAST = P; P->LEFT = NULL; 1) 2) 3) 4) 5) 6) 3.05 P->LEFT = NULL; LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 12 25 (2) (1) Pointer LEFT simpul (2) diisi NULL
3.05 LATIHAN DI KELAS
12 25 P Pertanyaan : Ada berapa buah simpul Ada berapa buah pointer 3.05 LAST FIRST P RIGHT RIGHT LEFT INFO LEFT INFO 12 25 (2) (1) Pertanyaan : Ada berapa buah simpul Ada berapa buah pointer Sebutkan nama dan isinya masing-masing
12 25 P LAST FIRST RIGHT RIGHT LEFT INFO LEFT INFO (2) (1) 3.05 1 3 2 6 5 4 (2) (1) 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT RIGHT No Nama isi LEFT INFO 3 LEFT INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi 4 5 6 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT RIGHT No Nama isi LEFT INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : 4 1 NULL ->LEFT yaitu : 2 ->LEFT yaitu : 6 5 6 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT LEFT RIGHT No Nama isi INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : 6 5 6 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT RIGHT No Nama isi LEFT INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : 6 5 6 ->LEFT yaitu : 3 &(2) ->LEFT yaitu : 5 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT RIGHT No Nama isi LEFT INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : 6 5 6 ->LEFT yaitu : FIRST->LEFT 3 &(2) ->LEFT yaitu : 5 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT RIGHT No Nama isi LEFT INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : FIRST->LEFT->LEFT 6 5 6 ->LEFT yaitu : FIRST->LEFT 3 &(2) ->LEFT yaitu : 5 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT RIGHT No Nama isi LEFT INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : FIRST->LEFT->LEFT 6 ->RIGHT yaitu : 5 1 &(1) ->RIGHT yaitu : 2 6 ->LEFT yaitu : FIRST->LEFT 3 &(2) ->LEFT yaitu : 5 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT RIGHT No Nama isi LEFT INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : FIRST->LEFT->LEFT 6 ->RIGHT yaitu : LAST->RIGHT 5 1 &(1) ->RIGHT yaitu : P->RIGHT 2 6 ->LEFT yaitu : FIRST->LEFT 3 &(2) ->LEFT yaitu : 5 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT RIGHT No Nama isi LEFT INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : FIRST->LEFT->LEFT 6 ->RIGHT yaitu : LAST->RIGHT 5 1 &(1) ->RIGHT yaitu : P->RIGHT 2 6 ->LEFT yaitu : FIRST->LEFT 3 &(2) ->LEFT yaitu : LAST->RIGHT->LEFT P->RIGHT->LEFT 5 7
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT LEFT RIGHT No Nama isi INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : FIRST->LEFT->LEFT 6 ->RIGHT yaitu : LAST->RIGHT 5 1 &(1) ->RIGHT yaitu : P->RIGHT 2 6 ->LEFT yaitu : FIRST->LEFT 3 &(2) ->LEFT yaitu : LAST->RIGHT->LEFT P->RIGHT->LEFT 5 7 ->RIGHT yaitu : 3 NULL ->RIGHT yaitu : 5
12 25 P No Nama isi &(2) LAST P &(2) FIRST &(1) RIGHT 3 LEFT LEFT RIGHT No Nama isi INFO INFO 2 &(2) 1 LAST 12 6 25 P 2 &(2) 5 3 FIRST &(1) 4 (2) (1) 7 No Pointer Nama pointer isi ->LEFT yaitu : LAST->LEFT 4 1 NULL ->LEFT yaitu : P->LEFT 2 ->LEFT yaitu : FIRST->LEFT->LEFT 6 ->RIGHT yaitu : LAST->RIGHT 5 1 &(1) ->RIGHT yaitu : P->RIGHT 2 6 ->LEFT yaitu : FIRST->LEFT 3 &(2) ->LEFT yaitu : LAST->RIGHT->LEFT P->RIGHT->LEFT 5 7 ->RIGHT yaitu : FIRST->RIGHT 3 NULL ->RIGHT yaitu : LAST->RIGHT->RIGHT P->RIGHT->RIGHT 5
4. 10 2.2.4 INSERT TENGAH. Sudah ada doubly linked linear list. Simpul no (7) sudah ditunjuk oleh pointer P. Sudah dibuat sebuah simpul baru yang ditunjuk oleh pointer P, dan P->INFO sudah diisi seperti ilustrasi berikut ini. P LEFT INFO RIGHT Q 20 LEFT INFO RIGHT LEFT INFO RIGHT 32 27 (7) (8) Soal : Susun algoritma untuk menginsert simpul baru tersebut antara simpul no (7) dan simpul no (8), sehingga terhubung seperti yang diilustrasikan berikut ini : P LEFT INFO RIGHT 20 Q 4) LEFT INFO RIGHT 8 3) LEFT INFO RIGHT 2) 1) 32 27 7 9 Instruksi yang diperlukan, adalah sebagai berikut : 2.2.4 Fungsi untuk Insert Tengah. void InsertTengah (void) { int X; scanf(“%i”, &X); p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; Sekarang simpul ini menjadi berada pada urutan simpul yang ke 9. Nomor ini tak ada dalam komputer. Nomor ini hanya dipakai untuk mengilustrasikan urutan simpul. 1) 2) 3) 4) atau P->RIGHT->LEFT = P; Ada 4 instruksi yang pokok 114