Linked List 6 3 7 3 NESTED LOOP

  • Slides: 44
Download presentation
Linked List 6. 3 & 7. 3 NESTED LOOP INSERT KIRI 1

Linked List 6. 3 & 7. 3 NESTED LOOP INSERT KIRI 1

INSERT KIRI Menambah simpul baru diujung paling kiri Linked List yang sudah ada Disebut

INSERT KIRI Menambah simpul baru diujung paling kiri Linked List yang sudah ada Disebut juga INSERT AWAL 2

Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 1. Simpul awal ada

Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 1. Simpul awal ada diujung paling kiri, ditunjuk oleh pointer FIRST Simpul terakhir ada diujung paling kanan, ditunjuk oleh poiner LAST Link simpul terakhir nilainya = NULL. Sudah dibuat sebuah Simpul baru yang ditunjuk oleh Pointer P. P->INFO sudah diisi. Susun algoritma untuk menginsert simpul baru tersebut diujung paling kiri, sehingga simpul baru tersebut menjadi simpul yang pertama. 3

LAST 15 (baru) 25 12 17 10 (1) (2) (3) (4) LINK INFO LINK

LAST 15 (baru) 25 12 17 10 (1) (2) (3) (4) LINK INFO LINK INFO FIRST INFO P Kalau sudah ada 4 buah simpul, INSERT KIRI akan menginsert simpul yang baru di buat, diujung paling kiri menjadi simpul no. (1) 4

LAST 15 (baru) 25 12 17 10 (1) (2) (3) (4) LINK INFO LINK

LAST 15 (baru) 25 12 17 10 (1) (2) (3) (4) LINK INFO LINK INFO FIRST INFO P Kalau sudah ada 4 buah simpul, INSERT KIRI akan menginsert simpul yang baru di buat, diujung paling kiri menjadi simpul no. (1) 15 25 12 17 10 (baru) (1) (2) (3) (4) (5) LINK INFO LINK INFO P INFO LAST FIRST 5

25 15 (baru) 12 (1) 17 (2) LINK INFO LINK INFO LAST INFO FIRST

25 15 (baru) 12 (1) 17 (2) LINK INFO LINK INFO LAST INFO FIRST p 10 (3) (4) Kalau sudah ada 4 buah simpul, INSERT KIRI akan menginsert simpul yang baru di buat, diujung paling kiri menjadi simpul no. (1) FIRST p 15 (1) 25 12 17 10 (1) (2) (3) (4) (5)6 LINK INFO LINK INFO LAST

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (baru) 25

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (baru) 25 (1) 12 LINK INFO LINK P INFO FIRST . . . (2) 7

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 25 (baru)

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 25 (baru) (1) 12 LINK INFO LINK P INFO FIRST . . . (2) Akan diisi dengan Alamat Simpul (1) 8

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (baru) 25

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (baru) 25 (1) 12 LINK INFO LINK P INFO FIRST . . . (2) Apa instruksinya ? 9

Simpul baru sudah diinsert ke Linked List yang sudah ada 15 25 (baru) (1)

Simpul baru sudah diinsert ke Linked List yang sudah ada 15 25 (baru) (1) 12 LINK INFO LINK P INFO FIRST . . . (2) P->LINK =. . ? 10

Simpul baru sudah diinsert ke Linked List yang sudah ada 15 25 (baru) (1)

Simpul baru sudah diinsert ke Linked List yang sudah ada 15 25 (baru) (1) 12 LINK INFO LINK P INFO FIRST . . . (2) P->LINK = FIRST; 11

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (1) Simpul

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (1) Simpul baru Sudah menjadi Simpul no (1) 25 (2) Simpul yang sebelumnya no (1) sekarang menjadi Simpul no (2) 12 LINK INFO LINK P INFO FIRST . . . (3) Catatan : Nomor simpul tidak ada dalam memory. Nomor ini kita buat hanya sebagai catatan 12

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (1) 25

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (1) 25 (2) LINK INFO LINK P INFO FIRST 12 . . . (3) Pointer FIRST Masih menunjuk Simpul no (2) Harus dipindahkan agar menunjuk Simpul pertama , Simpul no (1) 13

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (baru) 25

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (baru) 25 (1) 12 LINK INFO LINK P INFO FIRST . . . (2) Apa instruksinya ? 14

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (baru) 25

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 (baru) 25 12 (1) FIRST =. . LINK INFO LINK P INFO FIRST . . . (2) ? 15

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 25 (baru)

Simpul baru yang akan diinsert kiri Linked List yang sudah ada 15 25 (baru) (1) 12 LINK INFO LINK P INFO FIRST . . . (2) FIRST = P; 16

25 15 (baru) 12 (1) 17 (2) LINK INFO LINK INFO LAST INFO FIRST

25 15 (baru) 12 (1) 17 (2) LINK INFO LINK INFO LAST INFO FIRST p 10 (3) (4) INSERT KIRI Instruksi yang diperlukan : P->LINK = FIRST; FIRST = P; FIRST p 15 (1) 25 12 17 10 (1) (2) (3) (4) (5)17 LINK INFO LINK INFO LAST

18

18

19

19

Linked List Hanya ada satu simpul, Yaitu Simpul awal LINK P INFO LAST FIRST

Linked List Hanya ada satu simpul, Yaitu Simpul awal LINK P INFO LAST FIRST 25 (1) 20

Kemudian dibuat simpul baru yang akan diinsert disini 12 25 (baru) (1) LINK INFO

Kemudian dibuat simpul baru yang akan diinsert disini 12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST Perhatikan pointer P menujuk simpul yang baru, tidak menunjuk simpul (1) lagi 21

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST 22

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST 22

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST Akan diisi dengan

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST Akan diisi dengan Alamat Simpul (1) 23

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST Apa instruksinya ?

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST Apa instruksinya ? 24

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST P->LINK = FIRST;

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST P->LINK = FIRST; 25

12 25 (1) (2) LINK INFO LINK P INFO LAST FIRST Simpul baru sudah

12 25 (1) (2) LINK INFO LINK P INFO LAST FIRST Simpul baru sudah tersambung dengan Linked List. Simul baru menjadi no (1) Dan Simpul (1) yang lama menjadi no (2) 26

12 25 (1) (2) LINK INFO LINK P INFO LAST FIRST yang menujuk simpul

12 25 (1) (2) LINK INFO LINK P INFO LAST FIRST yang menujuk simpul (2) Dipindahkan menunjuk Simpul (1) Apa instruksinya ? 27

LAST 12 25 (1) (2) LINK INFO LINK P INFO FIRST Apa instruksinya ?

LAST 12 25 (1) (2) LINK INFO LINK P INFO FIRST Apa instruksinya ? 28

LAST 12 25 (1) (2) LINK INFO LINK P INFO FIRST = P; 29

LAST 12 25 (1) (2) LINK INFO LINK P INFO FIRST = P; 29

30

30

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST INSERT KIRI LAST

12 25 (baru) (1) LINK INFO LINK P INFO LAST FIRST INSERT KIRI LAST P->LINK = FIRST; FIRST = P; 12 25 (1) (2) LINK INFO LINK P INFO FIRST 31

32

32

Sudad ada satu buah simpul awal LINK 25 � LINK INFO P INFO LAST

Sudad ada satu buah simpul awal LINK 25 LINK INFO P INFO LAST FIRST 25 (1) 1000 P FIRST 1000 LAST 1000 X 33

LINK 12 LINK � 800 INFO LINK 25 P LINK INFO 12 LAST FIRST

LINK 12 LINK 800 INFO LINK 25 P LINK INFO 12 LAST FIRST INFO Sudah dibuat simpul baru yang ditunjuk oleh Pointer P. P->INFO sudah diisi 25 (1) 1000 P FIRST 800 1000 LAST 1000 X 34

INFO LINK 25 � 800 1000 P FIRST 800 1000 LAST 1000 X 12

INFO LINK 25 800 1000 P FIRST 800 1000 LAST 1000 X 12 25 (1) (2) LINK INFO P LINK 1000 FIRST INFO 12 LAST LINK INFO Simpul baru di link ke simpul yang sudah ada (Simpul Awal) P->LINK = FIRST; 35

LAST 800 FIRST 800 LAST 1000 INFO LINK (2) LAST FIRST X 12 25

LAST 800 FIRST 800 LAST 1000 INFO LINK (2) LAST FIRST X 12 25 (1) (2) LINK INFO P 1000 P (1) LINK 1000 25 INFO LINK 25 LINK INFO 12 12 LINK FIRST P INFO Pointer FIRST pindah menunjuk simpul baru FIRST = P; 36

37

37

3. 05 LATIHAN DI KELAS 38

3. 05 LATIHAN DI KELAS 38

FIRST Pertanyaan : 12 25 (1) (2) LINK INFO P 3. 05 LAST Ada

FIRST Pertanyaan : 12 25 (1) (2) LINK INFO P 3. 05 LAST Ada berapa buah simpul yang terlihat Ada berapa buah pointer yang terlihat - Apa nama masing-masing pointer - Apa isi masing-masing pointer 39

FIRST 12 (1) No Pointer Nama Pointer 4 LINK 3 INFO 1 LINK P

FIRST 12 (1) No Pointer Nama Pointer 4 LINK 3 INFO 1 LINK P INFO 2 3. 05 LAST 25 (2) 5 Isi pointer 1 2 3 4 5 40

FIRST 12 (1) No Pointer 4 Nama Pointer LINK 3 INFO 1 LINK P

FIRST 12 (1) No Pointer 4 Nama Pointer LINK 3 INFO 1 LINK P INFO 2 3. 05 LAST 25 (2) 5 Isi pointer 1 P &(1) 2 FIRST &(1) 3 LAST &(2) 4 P->LINK, atau FIRST->LINK &(2) 5 LAST->LINK atau P->LINK atau FIRST->LINK NULL 41

FIRST 12 (2) 4 LINK 3 INFO LINK 1 INFO 2 P 3. 05

FIRST 12 (2) 4 LINK 3 INFO LINK 1 INFO 2 P 3. 05 LAST 25 (1) 5 Sebutkan pointer mana saja yang nilainya sama 42

FIRST 12 (2) 4 LINK 3 INFO LINK 1 INFO 2 P 3. 05

FIRST 12 (2) 4 LINK 3 INFO LINK 1 INFO 2 P 3. 05 LAST 25 (1) 5 TRUE atau FALSE Kondisi berikut ini if( P->LINK == LAST ) if( LAST->LINK == FIRST->LINK ) 43

44

44