Menempatkan Pointer Q 6.3 & 7.3 NESTED LOOP
CONTOH SOAL
Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 10. LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Sudah ada Linear Singly Linked List. Jumlah simpul lebih dari 10. 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.
LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Soal-1. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk Simpul pertama (Simpul no. (1) ). LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Soal-1. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk Simpul pertama (Simpul no. (1) ). Q LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
Q = FIRST; Jawab : Q LAST FIRST xx xx LAST FIRST xx xx 25 12 17 25 12 LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Q = FIRST; Jawab : Q LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Soal-2. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk Simpul n0. (2). LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Soal-2. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk Simpul n0. (2). Q LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
Q = FIRST->LINK; Jawab : Q = FIRST; Q = Q->LINK; Q LAST FIRST xx INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Jawab : Q = FIRST->LINK; Q = FIRST; Q = Q->LINK; atau Q LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
Q = FIRST; Q = Q->LINK; Q = FIRST; Q = Q->LINK; Q Q LAST FIRST INFO INFO INFO INFO INFO LINK Q = FIRST; 25 12 17 xx xx (1) (2) (3) Q LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK Q = Q->LINK; 25 12 17 xx xx (1) (2) (3)
Q = Q->LINK; Keterangan : Q->LINK Q Q FIRST INFO INFO INFO 25 12 17 (1) (2) (3) Sewaktu Q menunjuk simpul (1), maka pointer( LINK ) ini namanya : Q->LINK Q = Q->LINK; Dengan : Berarti memindahkan Pointer Q satu langkah esuai arah ‘panah’, yang dalam hal contoh diatas, memindahkan Pointer Q satu langkah ke ‘kanan’. Q FIRST LINK LINK LINK INFO INFO INFO 25 12 17 (1) (2) (3)
LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Soal-3. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk Simpul n0. (3). LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Soal-3. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk Simpul n0. (3). LAST Q FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
Q = FIRST->LINK->LINK; LAST FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3) Jawab : Q = FIRST->LINK->LINK; atau : Q = FIRST; Q = Q->LINK; LAST Q FIRST LINK LINK LINK LINK INFO INFO INFO INFO INFO LINK 25 12 17 xx xx (1) (2) (3)
FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Soal-4. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk Simpul n0. (7). Q FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7)
Q = FIRST; for( I=1; I<=6; I++) { Q = Q->LINK; ) INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; for( I=1; I<=6; I++) { Q = Q->LINK; ) Menempatkan Pointer Q Menunjuk Simpul no. (7) Q FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7)
Penjelasan
Q = FIRST; …………………………… pointer Q menunjuk simpul (1) LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; …………………………… pointer Q menunjuk simpul (1)
Q = FIRST; …………………………… pointer Q menunjuk simpul (1) LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; …………………………… pointer Q menunjuk simpul (1) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (2)
Q = FIRST; …………………………… pointer Q menunjuk simpul (1) LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; …………………………… pointer Q menunjuk simpul (1) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (2) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (3)
Q = FIRST; …………………………… pointer Q menunjuk simpul (1) LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; …………………………… pointer Q menunjuk simpul (1) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (2) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (3) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (4)
Q = FIRST; …………………………… pointer Q menunjuk simpul (1) LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; …………………………… pointer Q menunjuk simpul (1) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (2) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (3) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (4) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (5)
Q = FIRST; …………………………… pointer Q menunjuk simpul (1) LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; …………………………… pointer Q menunjuk simpul (1) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (2) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (3) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (4) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (5) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (6)
Q = FIRST; …………………………… pointer Q menunjuk simpul (1) LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; …………………………… pointer Q menunjuk simpul (1) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (2) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (3) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (4) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (5) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (6) Q = Q->LINK; ……………………… pointer Q menunjuk simpul (7)
Q = FIRST; for( I=1; I<=6; I++) { Q = Q->LINK; ) INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; for( I=1; I<=6; I++) { Q = Q->LINK; ) Akan menempatkan pointer Q disimpul no (7), atau menunjuk simpul (7)
Soal-5. Susun algoritma untuk menghapus Simpul no (8). FIRST 25 12 14 LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO 25 12 14 20 15 (1) (2) (7) (8) (9) Soal-5. Susun algoritma untuk menghapus Simpul no (8). FIRST LINK LINK LINK LINK INFO INFO INFO INFO 25 12 14 15 (1) (2) (7) (9) (8)
Q->LINK = R->LINK; free( R ); FIRST LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO 25 12 14 20 15 (1) (2) (7) (8) (9) Q = FIRST; for(I=1; I<=6: I++); { Q = Q->LINK; } Menempatkan pointer Q Pada simpul (7) R = Q->LINK; Q->LINK = R->LINK; free( R ); Menghapus simpul (8) Delete Tengah FIRST LINK LINK LINK LINK INFO INFO INFO INFO 25 12 14 15 (1) (2) (7) (9) (8)
FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Soal-6. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk Simpul yang nilai INFOnya = 22. Dipastikan simpul dengan nilai INFO = 22, ada satu buah. Q FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7)
Q = FIRST; while( Q->INFO != 22 ) { Q = Q->LINK; ) 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; while( Q->INFO != 22 ) { Q = Q->LINK; ) Menempatkan Pointer Q Menunjuk Simpul dengan nilai INFO = 22 Q FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7)
FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Soal-7. Tulis instruksi untuk menempatkan Pointer Q, sehingga menunjuk satu simpul sebelum (disebelah kiri) Simpul yang nilai INFOnya = 22. Dipastikan simpul dengan nilai INFO = 22, ada satu buah, dan bukan merupakan simpul awal (ujung paling kiri) Q FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7)
while( Q->LINK->INFO != 22 ) { Q = Q->LINK; ) FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7) Q = FIRST; while( Q->LINK->INFO != 22 ) { Q = Q->LINK; ) Menempatkan Pointer Q Menunjuk satu simpul sebeleum ( disebelah kiri ) Simpul dengan nilai INFO = 22 Q FIRST LINK LINK LINK LINK LINK LINK LINK LINK INFO INFO INFO INFO INFO INFO INFO INFO 25 12 17 10 22 14 20 15 (1) (2) (3) (4) (5) (6) (7)
bersambung ke Contoh-Soal