Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

Similar presentations


Presentation on theme: "1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List."— Presentation transcript:

1 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List

2 2 Linear Doubly Linked List ( Linked List dengan pointer ganda )

3 LINKED LIST LURUS DENGAN POINTER GANDA

4 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 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 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 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 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)

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)); ) 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; ) 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; ) 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; ) 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; ) 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; ) INFO RIGHT P LEFT FIRST LAST 25

16 INFO RIGHT P LEFT 25 P->RIGHT P->INFO P->LEFT

17 INFO RIGHT P LEFT FIRST 25 P->RIGHT, atau FIRST->RIGHT P->INFO, atau FIRST->INFO P->LEFT, atau FIRST->LEFT

18 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 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 & 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 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 sudah ada simpul awal sebagai berikut : INFO RIGHT LEFT FIRST LAST 25 (1)

24 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 sehingga akan ter-link sebagai berikut : INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2)

26 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 Algoritma tahap per tahap

28 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 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 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 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 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 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 LATIHAN DI KELAS

35 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 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2)

37 37 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) No Pointer Nama pointer isi FIRST P LAST No Nama isi &(1) &(2)

38 38 INFO RIGHT LEFT FIRST LAST 25 INFO RIGHT P LEFT 12 (1)(2) No Pointer Nama pointer isi 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) No Pointer Nama pointer isi 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) No Pointer Nama pointer isi 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) No Pointer Nama pointer isi 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) No Pointer Nama pointer isi 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) No Pointer Nama pointer isi 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) No Pointer Nama pointer isi 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) No Pointer Nama pointer isi 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)


Download ppt "1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List."

Similar presentations


Ads by Google