Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Linked List Delete Tengah

Presentasi serupa


Presentasi berjudul: "Linked List Delete Tengah"— Transcript presentasi:

1 Linked List Delete Tengah
6.3 & 7.3 NESTED LOOP

2 Menghapus simpul yang berada diantara dua buah simpul
DELETE TENGAH Menghapus simpul yang berada diantara dua buah simpul

3 Q LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 10. Simpul pertama ada diujung paling kiri, ditunjuk oleh pointer FIRST, dan simpul terakhir ada diujung paling kanan dan ditunjuk oleh pointer LAST. Link simpul terakhir nilainya NULL. Bila simpul (7) sudah ditunjuk oleh pointer Q, maka susun algoritma untuk menghapus simpul no (8) sedemikian rupa sehingga simpul no (7) terhubung dengan simpul no (9), sebagai ilustrasi berikut : Q LINK LINK INFO INFO 22 20 (7) (9) (8)

4

5 free( ........ ); Q Q Simpul no (8) dapat diDELETE dengan instruksi :
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Simpul no (8) dapat diDELETE dengan instruksi : free( ); Q LINK LINK INFO INFO 22 20 (7) (9) (8)

6

7 free( ........ ); Q Simpul no (8) dapat diDELETE dengan instruksi : 22
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Simpul no (8) dapat diDELETE dengan instruksi : free( );

8 free( ........ ); Q Simpul no (8) dapat diDELETE dengan instruksi : 22
LINK LINK INFO INFO 22 20 (7) (9) Simpul no (8) dapat diDELETE dengan instruksi : free( );

9 free( Q->LINK ); Q Simpul no (8) dapat diDELETE dengan instruksi :
INFO INFO 22 20 (7) (8) Simpul no (8) dapat diDELETE dengan instruksi : free( Q->LINK );

10

11 Q->LINK = …………………; Q
INFO INFO 22 20 (7) (8) Menghubungkan simpul (7) dengan simpul (8) instruksi : Q->LINK = …………………;

12 Q->LINK = …………………; Q
INFO INFO 22 20 (7) (8) Menghubungkan simpul (7) dengan simpul (8) instruksi : Q->LINK = …………………;

13 Tidak bisa Q Menghubungkan simpul (7) dengan simpul (8) instruksi : 22
LINK LINK INFO INFO 22 20 (7) (8) Menghubungkan simpul (7) dengan simpul (8) instruksi : Tidak bisa

14 Tidak bisa Q Karena tidak ada pointer yang menunjuk Simpul (8)
LINK LINK INFO INFO 22 20 (7) (8) Menghubungkan simpul (7) dengan simpul (8) : Tidak bisa Karena tidak ada pointer yang menunjuk Simpul (8)

15 Gagal

16

17 Q LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Bagaimana kalau simpul (7) dihubungkan lebih dulu dengan simpul (9) , kemudian mengapus simpul (8) sebagai ilustrasi berikut ? Q LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Q LINK LINK INFO INFO 22 20 (7) (9) (8)

18 Q LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) ? Instruksi : Q LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9)

19 ? Instruksi : Q 22 14 20 . . . . . . . . (7) (8) (9) LINK LINK LINK
INFO INFO INFO 22 14 20 (7) (8) (9) ? Instruksi :

20 ? Instruksi : Q 22 14 20 . . . . . . . . (7) (8) (9) LINK LINK LINK
INFO INFO INFO 22 14 20 (7) (8) (9) ? Instruksi :

21

22 Q->LINK = …………………………………;
INFO INFO INFO 22 14 20 (7) (8) (9) Instruksi : Q->LINK = …………………………………;

23 Q->LINK = …………………………………;
INFO INFO INFO 22 14 20 (7) (8) (9) Instruksi : Q->LINK = …………………………………;

24 Q->LINK = Q->LINK->LINK;
INFO INFO INFO 22 14 20 (7) (8) (9) Instruksi : Q->LINK = Q->LINK->LINK;

25

26 free( ........ ); Q Q Simpul no (8) dapat diDELETE dengan instruksi :
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Simpul no (8) dapat diDELETE dengan instruksi : free( ); Q LINK LINK INFO INFO 22 20 (7) (9)

27 free( ........ ); Q Simpul no (8) dapat diDELETE dengan instruksi : 22
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Simpul no (8) dapat diDELETE dengan instruksi : free( );

28 free( ........ ); Q Simpul no (8) dapat diDELETE dengan instruksi : 22
LINK LINK INFO INFO 22 20 (7) (9) Simpul no (8) dapat diDELETE dengan instruksi : free( );

29 Tidak bisa Q Karena tidak ada pointer yang menunjuk Simpul (8)
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Simpul no (8) dapat diDELETE dengan instruksi : Tidak bisa Karena tidak ada pointer yang menunjuk Simpul (8)

30 Gagal

31

32 diperlukan cara-lain

33 ? Q Instruksi : R Q Tempatkan pointer baru misal R di Simpul (9) 22 14
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Tempatkan pointer baru misal R di Simpul (9) ? Instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9)

34

35 ? Q Instruksi : 22 14 20 . . . . . . . . (7) (8) (9) LINK LINK LINK
INFO INFO INFO 22 14 20 (7) (8) (9) ? Instruksi :

36 ? Q R Instruksi : 22 14 20 . . . . . . . . (7) (8) (9) LINK LINK LINK
INFO INFO INFO 22 14 20 (7) (8) (9) ? Instruksi :

37

38 Q Instruksi : R = …………………………………….; 22 14 20 . . . . . . . . (7) (8)
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Instruksi : R = …………………………………….;

39 Q R Instruksi : R = …………………………………….; 22 14 20 . . . . . . . . (7) (8)
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Instruksi : R = …………………………………….;

40 R = Q->LINK->LINK ;
INFO INFO INFO 22 14 20 (7) (8) (9) Instruksi : R = Q->LINK->LINK ;

41

42 ? Q R Instruksi : Q R Menghapus Simpul (8) 22 14 20 . . . . . . . . 22
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Menghapus Simpul (8) ? Instruksi : Q R LINK LINK INFO INFO 22 20 (7) (9) (8)

43 ? Q R Instruksi : Menghapus Simpul (8) 22 14 20 . . . . . . . . (7)
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) ? Menghapus Simpul (8) Instruksi :

44 ? Q R Instruksi : Menghapus Simpul (8) 22 20 . . . . . . . . (7) (9)
LINK LINK INFO INFO 22 20 (7) (9) (8) ? Menghapus Simpul (8) Instruksi :

45

46 Q R Instruksi : free( ………………… ); Menghapus Simpul (8) 22 14 20 . . . .
LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Menghapus Simpul (8) Instruksi : free( ………………… );

47 Q R Instruksi : free( ………………… ); Menghapus Simpul (8) 22 20 . . . .
LINK LINK INFO INFO 22 20 (7) (9) Menghapus Simpul (8) Instruksi : free( ………………… );

48 Q R Instruksi : free( Q->LINK ); Menghapus Simpul (8) 22 20 . . . .
INFO INFO 22 20 (7) (9) (8) Menghapus Simpul (8) Instruksi : free( Q->LINK );

49

50 ? Q R Instruksi : Menghubungkan simpul (7) dengan simpul (8) 22 20
LINK LINK INFO INFO 22 20 (7) (9) (8) ? Menghubungkan simpul (7) dengan simpul (8) Instruksi :

51 ? Q R Instruksi : Menghubungkan simpul (7) dengan simpul (8) 22 20
LINK LINK INFO INFO 22 20 (7) (9) (8) ? Menghubungkan simpul (7) dengan simpul (8) Instruksi :

52

53 Q R Instruksi : Q->LINK = ………… ; 22 20 . . . . . . . . (7) (9) (8)
INFO INFO 22 20 (7) (9) (8) Instruksi : Q->LINK = ………… ;

54 Q R Instruksi : Q->LINK = ………… ; 22 20 . . . . . . . . (7) (9) (8)
INFO INFO 22 20 (7) (9) (8) Instruksi : Q->LINK = ………… ;

55 Q R Instruksi : Q->LINK = R ; 22 20 . . . . . . . . (7) (9) (8)
INFO INFO 22 20 (7) (9) (8) Instruksi : Q->LINK = R ;

56 Latihan di Kelas

57 Cara-1

58 Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = ;

59 Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = ;

60 R = Q->LINK->LINK ;
Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK->LINK ;

61 R = Q->LINK->LINK ;
Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK->LINK ; Kedua, Menghapus simpul (8) dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 free(……………………); (7) (8) (9)

62 R = Q->LINK->LINK ;
Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK->LINK ; Kedua, Menghapus simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 free(……………………); (7) (9)

63 R = Q->LINK->LINK ;
Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK->LINK ; Kedua, Menghapus simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 free(Q->LINK ); (7) (9)

64 R = Q->LINK->LINK ;
Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK->LINK ; Kedua, Menghapus simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 free(Q->LINK ); (7) (9) (8) Ketiga, Menghubungkan simpul (7) dengan simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 (7) (9) Q->LINK = ……; (8)

65 R = Q->LINK->LINK ;
Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK->LINK ; Kedua, Menghapus simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 free(Q->LINK ); (7) (9) (8) Ketiga, Menghubungkan simpul (7) dengan simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 (7) (9) Q->LINK = ……; (8)

66 R = Q->LINK->LINK ;
Cara-1. Pertama, menempatkan pointer baru misal pointer R di simpul (9) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK->LINK ; Kedua, Menghapus simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 free(Q->LINK ); (7) (9) (8) Ketiga, Menghubungkan simpul (7) dengan simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 (7) (9) Q->LINK = R ; (8)

67

68 Cara-2

69 Cara-2. Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = …………………;

70 Cara-2. Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = …………………;

71 Cara-2. Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK;

72 R = Q->LINK; Cara-2. Q->LINK = ……………… ;
Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK; Q R Kedua, Menghubungkan simpul (7) dengan simpul (9) dengan instruksi : LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Q->LINK = ……………… ;

73 R = Q->LINK; Cara-2. Q->LINK = ……………… ;
Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK; Q R Kedua, Menghubungkan simpul (7) dengan simpul (9) dengan instruksi : LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Q->LINK = ……………… ;

74 R = Q->LINK; Cara-2. Q->LINK = R->LINK;
Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK; Q R Kedua, Menghubungkan simpul (7) dengan simpul (9) dengan instruksi : LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Q->LINK = R->LINK;

75 R = Q->LINK; Cara-2. Q->LINK = R->LINK;
Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK; Q R Kedua, Menghubungkan simpul (7) dengan simpul (9) dengan instruksi : LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Q->LINK = R->LINK;

76 R = Q->LINK; Cara-2. Q->LINK = R->LINK; free(… );
Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK; Q R Kedua, Menghubungkan simpul (7) dengan simpul (9) dengan instruksi : LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Q->LINK = R->LINK; Ketiga, Menghapus simpul (8) dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) free(… );

77 R = Q->LINK; Cara-2. Q->LINK = R->LINK; free(… );
Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK; Q R Kedua, Menghubungkan simpul (7) dengan simpul (9) dengan instruksi : LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Q->LINK = R->LINK; Ketiga, Menghapus simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 (7) (9) free(… ); (8)

78 R = Q->LINK; Cara-2. Q->LINK = R->LINK; free(R );
Pertama, menempatkan pointer baru misal pointer R di simpul (8) Dengan instruksi : Q R LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) R = Q->LINK; Q R Kedua, Menghubungkan simpul (7) dengan simpul (9) dengan instruksi : LINK LINK LINK INFO INFO INFO 22 14 20 (7) (8) (9) Q->LINK = R->LINK; Ketiga, Menghapus simpul (8) dengan instruksi : Q R LINK LINK INFO INFO 22 20 (7) (9) free(R ); (8)

79 selesai

80 Bersambung ke : Geser Pointer Q


Download ppt "Linked List Delete Tengah"

Presentasi serupa


Iklan oleh Google