Deklarasi Type
Type Infotype : < terdefinisi >
Type ElmtListDC :
Type addressDC: pointer to ElmtListDC
Type ListDC :
DCL : ListDC
procedure InsertFirst (Input /Output DCL:ListDC, Input P:addressDC )
{I.S. List DCL sembarang dan sirkuler, P sudah dialokasi, P<>Nil, Next(P)=Nil, Prev(P)=Nil)
F.S. P adalah element pertama list DCL}
Kamus
Algoritma :
If First (DCL) = Nil then
First (DCL) <— P
Last (DCL) <— P
Next(P) <— P
Else
Next (P) <— First (DCL)
Next(Last(DCL)) <— P
First (DCL) <— P
procedure InsertAfter (Input P, Prec : addressDC )
{I.S. Prec adalah elemen List DCL, Prec<>Nil, P sudah dialokasi, P<>Nil, Next(P)=Nil, Prev(P)=Nil)
F.S. P menjadi suksesor Prec}
Kamus
Algoritma :
Next (P) <— Next (Prec)
Prev (Next(Prec) <— P
Next (Prec) <— P
Prev (P) <— Prec
procedure InsertLast (Input /Output DCL:ListDC, Input P:addressDC )
{I.S. List DCL mungkin kosong dan sirkuler, P sudah dialokasi, P<>Nil, Next(P)=Nil, Prev(P)=Nil)
F.S. P adalah element terakhir list DCL}
Kamus
Algoritma :
If First (DCL) = Nil then
InsertFirst(DCL,P)
Else
Prev (P) <— Last (DCL)
Next (Prev (P)) <— P
Last (DCL) <— P
Next (P) <— First (DCL)
procedure DeleteFirst (Input /Output DCL:ListDC, Output P:addressDC )
{I.S. List DCL tidak kosong dan sirkuler, minimal 1 elemen, elemen pertama pasti ada
F.S. menghapus elemen pertama DCL, P adalah elemen pertama DCL sebelum penghapusan, DCL yang baru adalah Next (DCL), Next (P)=Nil, Prev (P)=Nil }
Kamus
Algoritma :
P <— First (DCL)
First (DCL) <— Next (First(DCL))
Next(Last (DCL)) <— Next (First(DCL))
Next (P) <— Nil
Prev (First(DCL)) <— Nil
procedure DeleteAfter (Input Prec:address, Output P:addressDC )
{I.S. List DCL tidak kosong dan sirkuler, Prec adalah elemen list, Next (Prec) <>Nil
F.S. Next (Prec), yaitu elemen beralamat P dihapus dari List, Next (P)=Nil, Prev (P)=Nil }
Kamus
Algoritma :
P <— Next (Prec)
If Next (P) = Nil then
Next (Prec) <— Nil
Last (DCL) <— Prec
Next(Last(DCL)) <— First(DCL)
Else
Next (Prec) <— Next (P)
Prev (Next (Prec)) <— Prec
Next (P) <— Nil
procedure DeleteLast (Input /Output DCL:ListDC, Output P:addressDC )
{I.S. List L tidak kosong dan sirkuler, minimal mengandung 1 elemen
F.S. menghapus elemen terakhir dari List, List mungkin menjadi kosong, P adalah alamat elemen terakhir List sebelum penghapusan }
Kamus
Algoritma :
If Next (First (DCL)) = Nil then
DeleteFirst(DCL,P)
Else
P <— Last (DCL)
Last (DCL) <— Prev (Last (DCL))
Next (Last (DCL)) <— First(DCL)
Prev (P) <— Nil
Next(P) <— Nil

Tidak ada komentar:
Posting Komentar