IF2030_Proc_09_VariasiListLinier_bgn2

S list tidak kosong prec adalah anggota list fs

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: ec); /* I.S. List tidak kosong. Prec adalah anggota list */ /* F.S. Menghapus Next(Prec): */ /* Pdel adalah alamat elemen list yang dihapus */ 11/02/11 IF2030/Sem. 1 2011-2012 24 Beberapa Primitif Beberapa Primitif void InsertFirst (List * L, address P) /* I.S. Sembarang, P sudah dialokasi */ /* F.S. Menambahkan elemen ber-address P sebagai elemen pertama */ { /* Kamus Lokal */ /* Algoritma */ Next(P) = First(*L); if (!ListEmpty(*L)) { Prev(First(*L)) = P; } else /* L kosong */ { Last(*L) = P; } First(*L) = P; } 11/02/11 IF2030/Sem. 1 2011-2012 25 Beberapa Primitif Beberapa Primitif void InsertAfter (List * L, address P, address Prec) (Li /* I.S. Prec pastilah elemen list dan bukan elemen terakhir, */ /* P sudah dialokasi */ /* F.S. Insert P sebagai elemen sesudah elemen beralamat Prec */ { /* Kamus Lokal */ */ /* Algoritma */ Prev(Next(Prec)) = P; Next(P) = Next(Prec); Ne Prev(P) = Prec; Next(Prec) = P; } 11/02/11 IF2030/Sem. 1 2011-2012 26 Beberapa Primitif Beberapa Primitif void InsertLast (List * L, address P) InsertLast (List L, address P) /* I.S. Sembarang, P sudah dialokasi */ /* F.S. P ditambahkan sebagai elemen terakhir yang baru */ { /* Kamus Lokal */ /* Algoritma */ Prev(P) = Last(*L); if (!ListEmpty(*L)) { Next(Last(*L)) = P; P; } else /* L kosong */ { First(*L) = P; } Last(*L) = P; P; } 11/02/11 IF2030/Sem. 1 2011-2012 27 Beberapa Primitif Beberapa Primitif void DeleteFirst (List * L, address * P) /* I.S. List L tidak kosong */ /* F.S. P adalah alamat elemen pertama list sebelum penghapusan */ /* Elemen list berkurang satu (mungkin menjadi kosong) */ /* First element yg baru adalah suksesor elemen pertama yang lama */ { /* Kamus Lokal */ /* Algoritma */ *P = First(*L); if (First(*L) == Last(*L)) { Last(*L) = Nil; } First(*L) = Next(First(*L)); Next(*P) = Nil; Prev(*P) = Nil; Nil } 11/02/11 IF2030/Sem. 1 2011-2012 28 Beberapa Primitif Beberapa Primitif void DeleteLast (List * L, address * P) /* I.S. List tidak kosong */ /* F.S. P adalah alamat elemen terakhir list sebelum penghapusan */ /* Elemen list berkurang satu (mungkin menjadi kosong) */ /* Last element baru adalah predesesor elemen pertama yg lama, */ /* jika ada */ { /* Kamus Lokal */ */ /* Algoritma */ *P = Last(*L); if (First(*L) == Last(*L)) { First(*L) = Nil; } Last(*L) = Prev(Last(*L)); Next(*P) = Nil; Nil Prev(*P) = Nil; } 11/02/11 IF2030/Sem. 1 2011-2012...
View Full Document

This document was uploaded on 03/15/2014 for the course IF 2030 at Institut Teknologi Bandung.

Ask a homework question - tutors are online