Linear Doubly INSERT TENGAH Linked List INSERT TENGAH 6.3 & 7.3 NESTED LOOP
Menambah simpul baru diantara dua buah simpul yang sudah ada 3.08 INSERT TENGAH Menambah simpul baru diantara dua buah simpul yang sudah ada
Misal mengINSERT simpul baru diantara simpul (7) dan simpul (8) 3.08 RIGHT LEFT INFO LEFT INFO RIGHT 32 27 (7) (8) Misal mengINSERT simpul baru diantara simpul (7) dan simpul (8)
b a b a c d P Q P Q 20 32 27 (7) (8) 20 32 27 (7) (8) INFO RIGHT LEFT
d c b a b a c d void InsertTengah (void) { int X; scanf(“%i”, &X); p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; } 1) 2) 3) 4) d c b a P RIGHT LEFT INFO 20 Q b a LEFT INFO RIGHT INFO RIGHT LEFT c d 32 27 (7) (8)
Algoritma tahap per tahap 3.05 Algoritma tahap per tahap
b a c d P Q p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; 1) 2) 3) 4) P INFO RIGHT LEFT 20 Q b a LEFT INFO RIGHT RIGHT LEFT INFO c d 32 27 (7) (8)
Q LEFT INFO RIGHT RIGHT LEFT INFO b 32 27 a (7) (8)
P=(Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; 1) 2) 3) 4) P=(Simpul *) malloc(sizeof(Simpul)); P LEFT INFO RIGHT c d Q LEFT INFO RIGHT LEFT INFO RIGHT b 32 27 a (7) (8)
P->INFO = X; c d b a P Q p = (Simpul *) malloc(sizeof(Simpul)); P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; 1) 2) 3) 4) P->INFO = X; P LEFT INFO RIGHT 20 c d Q LEFT INFO RIGHT LEFT INFO RIGHT b 32 27 a (7) (8)
P->RIGHT = Q->RIGHT p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; 1) 2) 3) 4) d P->RIGHT = Q->RIGHT P LEFT INFO RIGHT 20 c Q d LEFT INFO RIGHT INFO RIGHT LEFT b 32 27 a (7) (8)
b c P>LEFT = Q; c d b a P Q p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; 1) 2) 3) 4) atau : P->LEFT = P->RIGHT->LEFT b c P>LEFT = Q; P RIGHT LEFT INFO 20 Q c d LEFT INFO RIGHT LEFT INFO RIGHT b 32 27 a (7) (8)
Q->RIGHT->LEFT = P; p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; 1) 2) 3) 4) b Q->RIGHT->LEFT = P; P LEFT INFO RIGHT 20 Q b LEFT INFO RIGHT INFO RIGHT LEFT c d 32 27 a (7) (8)
b c d a P Q p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; 1) 2) 3) 4) P INFO RIGHT LEFT 20 Q b LEFT INFO RIGHT INFO RIGHT LEFT c d 32 27 a (7) (8)
a Q->RIGHT = P; b a c d P Q p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; 1) 2) 3) 4) a Q->RIGHT = P; P LEFT INFO RIGHT 20 Q b a LEFT INFO RIGHT LEFT INFO RIGHT c d 32 27 (7) (8)
4. 10 2.2.4 INSERT TENGAH. Sudah ada doubly linked linear list. Simpul no (7) sudah ditunjuk oleh pointer P. Sudah dibuat sebuah simpul baru yang ditunjuk oleh pointer P, dan P->INFO sudah diisi seperti ilustrasi berikut ini. P LEFT INFO RIGHT Q 20 LEFT INFO RIGHT LEFT INFO RIGHT 32 27 (7) (8) Soal : Susun algoritma untuk menginsert simpul baru tersebut antara simpul no (7) dan simpul no (8), sehingga terhubung seperti yang diilustrasikan berikut ini : P LEFT INFO RIGHT 20 Q 4) LEFT INFO RIGHT 8 3) LEFT INFO RIGHT 2) 1) 32 27 7 9 Instruksi yang diperlukan, adalah sebagai berikut : 2.2.4 Fungsi untuk Insert Tengah. void InsertTengah (void) { int X; scanf(“%i”, &X); p = (Simpul *) malloc(sizeof(Simpul)); P->INFO = X; P->RIGHT = Q->RIGHT; P->LEFT = Q; Q->RIGHT->LEFT = P; Q->RIGHT = P; Sekarang simpul ini menjadi berada pada urutan simpul yang ke 9. Nomor ini tak ada dalam komputer. Nomor ini hanya dipakai untuk mengilustrasikan urutan simpul. 1) 2) 3) 4) atau P->RIGHT->LEFT = P; Ada 4 instruksi yang pokok 114