Top Banner
1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List
45
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

1

6.3 & 7.3NESTED LOOP

Linear DoublyLinked List

Page 2: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

2

Linear Doubly Linked List( Linked List dengan pointer ganda )

Page 3: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

3

3. 02

LINKED LIST LURUSDENGAN POINTER GANDA

Page 4: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

4

3. 01ILUSTRASI LINEAR DOUBLY LINKED LIST

25IN

FO

RIG

HT

LEFT

FIRST

12

INFO

RIG

HT

LEFT

17

INFO

LEFT

10

RIG

HT

INFO

LEFT

RIG

HT

LAST

10

INFO

RIG

HT

LEFT

LAST

17

INFO

RIG

HT

LEFT

12IN

FO

LEFT

25

RIG

HT

INFO

LEFT

RIG

HT

FIRST

(1) (2) (3) (4)

(1)(2)(3)(4)

Page 5: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

5

4. 01

Ilustrasi sebuah Simpul

INFO

RIG

HT

Nama fieldTipe

Isi

: RIGHT: pointer: akan diisi dengan alamat record berikutnya (disebelah ‘kanan’nya)Nama field

TipeIsi

: INFO: integer: akan diisi data

Simpul dengan 3 elemen atau field

LEFT

Nama fieldTipe

Isi

: LEFT: pointer: akan diisi dengan alamat record sebelumnya (disebelah ‘kiri’nya)

Page 6: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

6

4. 01

Dalam Bahasa C, salah satu cara untuk menyatakan suatu simpuldengan struktur demikian, dapat ditulis sebagai berikut :

struct Simpul { struct Simpul *LEFT; int INFO; struct Simpul *RIGHT; };Simpul *P, *FIRST, *LAST;

INFO

RIG

HT

LEFT

Page 7: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

7

6.3 & 7.3NESTED LOOP

Linear DoublyLinked List

Pembuatan Simpul Awal

Page 8: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

8

3. 01

25IN

FO

RIG

HT

LEFT

FIRST

12

INFO

RIG

HT

LEFT

17

INFO

LEFT

10

RIG

HT

INFO

LEFT

RIG

HT

LAST

(1) (2) (3) (4)

Ini Simpul

Awal

INFO

RIG

HTP

LEF

T

FIRST

LAST

25

Page 9: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

9

2.2.1 Pembuatan Simpul Awal (inisialisasi)

INFO

RIG

HTP

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

Page 10: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

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

RIG

HTP

LEFT

Page 11: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

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

RIG

HTP

LEFT

25

Page 12: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

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

RIG

HTP

LEFTFIRST

25

Page 13: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

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

RIG

HTP

LEFTFIRST

LAST

25

Page 14: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

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

RIG

HTP

LEFTFIRST

LAST

25

Page 15: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

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

RIG

HTP

LEFTFIRST

LAST

25

Page 16: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

16

4. 02

INFO

RIG

HTP

LEFT

25

P->RIGHT

P->INFO

P->LEFT

Page 17: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

17

4. 02

INFO

RIG

HTP

LEFT

FIRST

25

P->RIGHT, atauFIRST->RIGHT

P->INFO, atauFIRST->INFO

P->LEFT, atauFIRST->LEFT

Page 18: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

18

4. 02

INFO

RIG

HTP

LEFT

FIRST

LAST

25

P->RIGHT, atauFIRST->RIGHT, atauLAST->RIGHT

P->INFO, atauFIRST->INFO; atauLAST->INFO

P->LEFT, atauFIRST->LEFT, atauLAST->LEFT

Page 19: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

19

4. 02

INFO

RIG

HTP

LEFT

FIRST

LAST

25

P->RIGHT, atauFIRST->RIGHT, atauLAST->RIGHT

P->INFO, atauFIRST->INFO; atauLAST->INFO

P->LEFT, atauFIRST->LEFT, atauLAST->LEFT

Page 20: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

20

6.3 & 7.3NESTED LOOP

Linear DoublyLinked List

INSERT KANAN

Page 21: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

21

INSERT KANANMenambah simpul baru diujung paling kanan Linked

List yang sudah ada Disebut juga

INSERT AKHIR

3.08

Page 22: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

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

RIG

HT

LEFT

FIRST

12

INFO

RIG

HT

LEFT

17

INFO

LEFT

10

RIG

HT

INFO

LEFT

RIG

HT

LAST

(1) (2) (3) (4)

Page 23: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

23

3.05

sudah ada simpul awalsebagai berikut :

INFO

RIG

HT

LEFT

FIRST

LAST

25

(1)

Page 24: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

24

3.05

akan dibuat simpul baruyang akan diinsert disini

Perhatikan pointer Pmenujuk simpul yang barutidak menunjuk simpul yang lama lagi

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

Page 25: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

25

3.05

sehingga akan ter-linksebagai berikut :

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

Page 26: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

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 BaruDan INSERT KANAN

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HT

P

LEFT

12

(1) (2)

Page 27: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

27

3.05

Algoritma tahap per tahap

Page 28: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

28

3.05

Membuat Simpul (2)

INFO

RIG

HT

LEFT

FIRST

25

INFO

RIG

HTP

LEFT

(1) (2)

LAST

1)2)3)4)5)6)

P = (Simpul *) malloc(sizeof(Simpul));

P = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; LAST->RIGHT = P; P->LEFT = LAST; LAST = P; P->RIGHT = NULL;

Page 29: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

29

3.05

P->INFO diisi dengan nilai X

INFO

RIG

HT

LEFT

FIRST

25

INFO

RIG

HTP

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;

Page 30: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

30

3.05

Pointer RIGHT Simpul (1) menunjuk simpul (2)

INFO

RIG

HT

LEFT

FIRST

25

INFO

RIG

HTP

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;

Page 31: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

31

3.05

Pointer LEFT simpul (2) menunjuk simpul (1)

INFO

RIG

HT

LEFT

FIRST

25

INFO

RIG

HTP

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;

Page 32: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

32

3.05

Pointer LAST pindah menunjuk simpul teralhir

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HTP

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;

Page 33: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

33

3.05

Pointer RIGHT simpul (2) diisi NULL

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HTP

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;

Page 34: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

34

3.05

LATIHANDI

KELAS

Page 35: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

35

3.05

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

Pertanyaan :1. Ada berapa buah simpul2. Ada berapa buah pointer Sebutkan nama dan isinya masing-masing

Page 36: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

36

3.05

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1 2

3

4

5

6

7

Page 37: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

37

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

LAST

No Nama isi&(1)

&(2)&(2)

Page 38: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

38

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

LAST

1

6

->LEFT yaitu :->LEFT yaitu :

No Nama isi&(1)

&(2)&(2)

Page 39: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

39

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

LAST

1

6

->LEFT yaitu : FIRST->LEFT->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT

No Nama isi

NULL

&(1)

&(2)&(2)

Page 40: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

40

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

LAST

1

6

->LEFT yaitu : FIRST->LEFT->LEFT yaitu : P->LEFT->LEFT LAST->LEFT->LEFT

No Nama isi

NULL

&(1)

&(2)&(2)

1

6

->RIGHT yaitu :->RIGHT yaitu :

Page 41: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

41

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

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)&(2)

Page 42: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

42

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

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 :->LEFT yaitu :

5 ->LEFT yaitu :

No Nama isi

NULL

&(2)

&(1)

&(2)&(2)

Page 43: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

43

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

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)

&(1)

&(2)&(2)

Page 44: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

44

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

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 :

->RIGHT yaitu :3 ->RIGHT yaitu :

NULL

&(2)

&(1)

&(1)

&(2)&(2)

Page 45: 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

45

INFO

RIG

HT

LEFT

FIRSTLAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1

45

2

3

6

7

No Pointer Nama pointer isi

1

2

3

4

5

6

7

FIRSTP

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)&(2)