Download presentation
Presentation is loading. Please wait.
Published byBarry Dibble Modified over 9 years ago
1
1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List
2
2 Linear Doubly Linked List ( Linked List dengan pointer ganda )
3
3 3. 02 LINKED LIST LURUS DENGAN POINTER GANDA
4
4 3. 01 ILUSTRASI LINEAR DOUBLY LINKED LIST 25 INFO RIGHT LEFT FIRST 12 INFO RIGHT LEFT 17 INFO LEFT 10 RIGHT INFO LEFT RIGHT LAST 10 INFO RIGHT LEFT LAST 17 INFO RIGHT LEFT 12 INFO LEFT 25 RIGHT INFO LEFT RIGHT FIRST (1) (2)(3)(4) (1)(2)(3) (4)
5
5 4. 01 Ilustrasi sebuah Simpul INFO RIGHT Nama field Tipe Isi : RIGHT : pointer : akan diisi dengan alamat record berikutnya (disebelah ‘kanan’nya) Nama field Tipe Isi : INFO : integer : akan diisi data Simpul dengan 3 elemen atau field LEFT Nama field Tipe Isi : LEFT : pointer : akan diisi dengan alamat record sebelumnya (disebelah ‘kiri’nya)
6
6 4. 01 Dalam Bahasa C, salah satu cara untuk menyatakan suatu simpul dengan struktur demikian, dapat ditulis sebagai berikut : struct Simpul { struct Simpul *LEFT; int INFO; struct Simpul *RIGHT; }; Simpul *P, *FIRST, *LAST; INFO RIGHT LEFT
7
7 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List Pembuatan Simpul Awal
8
8 3. 01 25 INFO RIGHT LEFT FIRST 12 INFO RIGHT LEFT 17 INFO LEFT 10 RIGHT INFO LEFT RIGHT LAST (1) (2)(3)(4) Ini Simpul Awal INFO RIGHT P LEF T FIRST LAST 25
9
9 2.2.1 Pembuatan Simpul Awal (inisialisasi) INFO RIGHT P LEFT FIRST LAST void Awal (void) { int X; scanf(“%i”, &X); P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LEFT = NULL; P->RIGHT = NULL; } 1) 2) 3) 4) 5) 6) 4. 02 25
10
10 P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LEFT = NULL; P->RIGHT = NULL; } 1) 2) 3) 4) 5) 6) P = (Simpul *) malloc(sizeof(Simpul)); 4. 02 1) INFO RIGHT P LEFT
11
11 P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LEFT = NULL; P->RIGHT = NULL; } 1) 2) 3) 4) 5) 6) P->INFO = X; 4. 02 2) INFO RIGHT P LEFT 25
12
12 P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LEFT = NULL; P->RIGHT = NULL; } 1) 2) 3) 4) 5) 6) FIRST = P; 4. 02 3) INFO RIGHT P LEFT FIRST 25
13
13 P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LEFT = NULL; P->RIGHT = NULL; } 1) 2) 3) 4) 5) 6) LAST = P; 4. 02 4) INFO RIGHT P LEFT FIRST LAST 25
14
14 P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LEFT = NULL; P->RIGHT = NULL; } 1) 2) 3) 4) 5) 6) P->LEFT = NULL; 4. 02 5) INFO RIGHT P LEFT FIRST LAST 25
15
15 P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; FIRST = P; LAST = P; P->LEFT = NULL; P->RIGHT = NULL; } 1) 2) 3) 4) 5) 6) P->RIGHT = NULL; 4. 02 6) INFO RIGHT P LEFT FIRST LAST 25
16
16 4. 02 INFO RIGHT P LEFT 25 P->RIGHT P->INFO P->LEFT
17
17 4. 02 INFO RIGHT P LEFT FIRST 25 P->RIGHT, atau FIRST->RIGHT P->INFO, atau FIRST->INFO P->LEFT, atau FIRST->LEFT
18
18 4. 02 INFO RIGHT P LEFT FIRST LAST 25 P->RIGHT, atau FIRST->RIGHT, atau LAST->RIGHT P->INFO, atau FIRST->INFO; atau LAST->INFO P->LEFT, atau FIRST->LEFT, atau LAST->LEFT
19
19 4. 02 INFO RIGHT P LEFT FIRST LAST 25 P->RIGHT, atau FIRST->RIGHT, atau LAST->RIGHT P->INFO, atau FIRST->INFO; atau LAST->INFO P->LEFT, atau FIRST->LEFT, atau LAST->LEFT
20
20 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List INSERT KANAN
21
21 INSERT KANAN Menambah simpul baru diujung paling kanan Linked List yang sudah ada Disebut juga INSERT AKHIR 3.08
22
22 3.08 Kalau sudah ada 4 buah simpul, INSERT KANAN akan menginsert simpul yang baru di buat, diujung paling kanan menjadi simpul no. (5) (5) 25 INFO RIGHT LEFT FIRST 12 INFO RIGHT LEFT 17 INFO LEFT 10 RIGHT INFO LEFT RIGHT LAST (1) (2)(3)(4)
23
23 3.05 sudah ada simpul awal sebagai berikut : INFO RIGHT LEFT FIRST LAST 25 (1)
24
24 3.05 akan dibuat simpul baru yang akan diinsert disini Perhatikan pointer P menujuk simpul yang baru tidak menunjuk simpul yang lama lagi INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2)
25
25 3.05 sehingga akan ter-link sebagai berikut : INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2)
26
26 3.05 void Awal (void) { int X; scanf(“%i”, &X); P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL; } 1) 2) 3) 4) 5) 6) Algoritma Membuat Simpul Baru Dan INSERT KANAN INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2)
27
27 3.05 Algoritma tahap per tahap
28
28 3.05 Membuat Simpul (2) INFO RIGHT LEFT FIRST 25 INFO RIGHT P LEFT (1)(2) LAST 1) 2) 3) 4) 5) 6) P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL;
29
29 3.05 P->INFO diisi dengan nilai X INFO RIGHT LEFT FIRST 25 INFO RIGHT P LEFT 12 (1)(2) LAST 1) 2) 3) 4) 5) 6) P->INFO = X; P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL;
30
30 3.05 Pointer RIGHT Simpul (1) menunjuk simpul (2) INFO RIGHT LEFT FIRST 25 INFO RIGHT P LEFT 12 (1)(2) LAST P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL; 1) 2) 3) 4) 5) 6) LAST->RIGHT = P;
31
31 3.05 Pointer LEFT simpul (2) menunjuk simpul (1) INFO RIGHT LEFT FIRST 25 INFO RIGHT P LEFT 12 (1)(2) LAST P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL; 1) 2) 3) 4) 5) 6) P->LEFT = LAST;
32
32 3.05 Pointer LAST pindah menunjuk simpul teralhir INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL; 1) 2) 3) 4) 5) 6) LAST = P;
33
33 3.05 Pointer RIGHT simpul (2) diisi NULL INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL; 1) 2) 3) 4) 5) 6) P->RIGHT = NULL;
34
34 3.05 LATIHAN DI KELAS
35
35 3.05 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) Pertanyaan :1.Ada berapa buah simpul 2.Ada berapa buah pointer Sebutkan nama dan isinya masing-masing
36
36 3.05 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 2 3 4 5 6 7
37
37 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST No Nama isi &(1) &(2)
38
38 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST 1 6 ->LEFT yaitu : No Nama isi &(1) &(2)
39
39 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST 1 6 ->LEFT yaitu : FIRST->LEFT ->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT No Nama isi NULL &(1) &(2)
40
40 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST 1 6 ->LEFT yaitu : FIRST->LEFT ->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT No Nama isi NULL &(1) &(2) 1 6 ->RIGHT yaitu :
41
41 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST 1 6 ->LEFT yaitu : FIRST->LEFT ->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT 1 6 ->RIGHT yaitu : FIRST->RIGHT ->RIGHT yaitu : P->LEFT->RIGHT LAST->LEFT->RIGHT No Nama isi NULL &(2) &(1) &(2)
42
42 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST 1 6 ->LEFT yaitu : FIRST->LEFT ->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT 1 6 ->RIGHT yaitu : FIRST->RIGHT ->RIGHT yaitu : P->LEFT->RIGHT LAST->LEFT->RIGHT 2 3 ->LEFT yaitu : 5 No Nama isi NULL &(2) &(1) &(2)
43
43 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST 1 6 ->LEFT yaitu : FIRST->LEFT ->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT 1 6 ->RIGHT yaitu : FIRST->RIGHT ->RIGHT yaitu : P->LEFT->RIGHT LAST->LEFT->RIGHT 2 3 ->LEFT yaitu : P->LEFT ->LEFT yaitu : LAST->LEFT 5 ->LEFT yaitu : FIRST->RIGHT->LEFT No Nama isi NULL &(2) &(1) &(2)
44
44 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST 1 6 ->LEFT yaitu : FIRST->LEFT ->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT 1 6 ->RIGHT yaitu : FIRST->RIGHT ->RIGHT yaitu : P->LEFT->RIGHT LAST->LEFT->RIGHT 2 3 ->LEFT yaitu : P->LEFT ->LEFT yaitu : LAST->LEFT 5 ->LEFT yaitu : FIRST->RIGHT->LEFT No Nama isi 2 5 ->RIGHT yaitu : 3 NULL &(2) &(1) &(2)
45
45 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) 1 4 5 2 3 6 7 No Pointer Nama pointer isi 1 2 3 4 5 6 7 FIRST P LAST 1 6 ->LEFT yaitu : FIRST->LEFT ->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT 1 6 ->RIGHT yaitu : FIRST->RIGHT ->RIGHT yaitu : P->LEFT->RIGHT LAST->LEFT->RIGHT 2 3 ->LEFT yaitu : P->LEFT ->LEFT yaitu : LAST->LEFT 5 ->LEFT yaitu : FIRST->RIGHT->LEFT No Nama isi 2 5 ->RIGHT yaitu : P->RIGHT ->RIGHT yaitu : FIRST->RIGHT->RIGHT 3 ->RIGHT yaitu : LAST->RIGHT NULL &(2) &(1) NULL &(1) &(2)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.