+ All Categories
Home > Documents > 1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List.

Date post: 14-Dec-2015
Category:
Upload: barry-dibble
View: 222 times
Download: 1 times
Share this document with a friend
Popular Tags:
45
1 6.3 & 7.3 NESTED LOOP Linear Doubly Linked List
Transcript

1

6.3 & 7.3NESTED LOOP

Linear DoublyLinked List

2

Linear Doubly Linked List( Linked List dengan pointer ganda )

3

3. 02

LINKED LIST LURUSDENGAN POINTER GANDA

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)

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)

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

7

6.3 & 7.3NESTED LOOP

Linear DoublyLinked List

Pembuatan Simpul Awal

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

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

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

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

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

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

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

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

16

4. 02

INFO

RIG

HTP

LEFT

25

P->RIGHT

P->INFO

P->LEFT

17

4. 02

INFO

RIG

HTP

LEFT

FIRST

25

P->RIGHT, atauFIRST->RIGHT

P->INFO, atauFIRST->INFO

P->LEFT, atauFIRST->LEFT

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

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

20

6.3 & 7.3NESTED LOOP

Linear DoublyLinked List

INSERT KANAN

21

INSERT KANANMenambah simpul baru diujung paling kanan Linked

List yang sudah ada Disebut juga

INSERT AKHIR

3.08

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)

23

3.05

sudah ada simpul awalsebagai berikut :

INFO

RIG

HT

LEFT

FIRST

LAST

25

(1)

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)

25

3.05

sehingga akan ter-linksebagai berikut :

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

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)

27

3.05

Algoritma tahap per tahap

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;

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;

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;

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;

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;

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;

34

3.05

LATIHANDI

KELAS

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

36

3.05

INFO

RIG

HT

LEFT

FIRST

LAST

25

INFO

RIG

HTP

LEFT

12

(1) (2)

1 2

3

4

5

6

7

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)

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)

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)

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 :

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)

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)

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)

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)

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)


Recommended