senarai berantai berputar (circular single link...

Post on 04-Apr-2019

256 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SENARAI BERANTAI BERPUTAR (CIRCULAR SINGLE LINK LIST)

Senarai Berantai Berputar (circular link list) merupakan bentuk

pengembangan senarai berantai (link list) yang pointer elemen terakhirya (last

element) menunjuk elemen pertama (Head).

Model Logika

Model Fisik

Head

Oleh karena itu algoritma Traversing, Inserting dan Deleting elemen pada

Circular Link List agak sedikit berbeda dengan Link List biasa.

OPERASI DASAR PADA CIRCULAR SINGLE LINKED LIST

A. Operasi Traversing

Algoritma Traversing Circular Single Link List

TraversingCLL(head)If Head = NullWrite(‘List kosong’)

Else P = Head;Do Write(P->Info); P = P->Next;While P != Head;

EndifReturn

Head

Irna Ika IdaIra Indah

ALM INFO NEXT1 Indah 42 Ika 634 Irna 25 Ida 16 Ira 5

4

B. Operasi Searching

Algoritma Mencari Alamat Elemen Ke-K Pada Circular Link ListFindKCLL(Head, K, P)If Head = NULL

Write(‘List kosong’)Else IF K=1 Then

P = Head;Else

I = 1;P = Head;Do

Inc(I);P = P->Next;

While (P != head) && (I != K);Endif

Endif/*

If (I < K) Then Write(‘Alamat elemen ke ’, K, ‘ tidak ada !’)Else Write(‘Alamat elemen ke ’, K, ‘ adalah : ’, P);

*/Return

Algoritma Mencari Alamat Data (Q) Pada Circular Link List

FindQCLL(Head, Q, P)Found = False;P = Head;Do If P->Info = Q Found = True Else P = P->Next;While (P != Head) && (!Found);/*

If (P->Info <> Q) Then Write(‘Data ’, Q, ‘ tidak ada !’)Else Write(‘Alamat Data ’, Q, ‘ adalah : ’, P);

*/Return

Algoritma Mencari Alamat Elemen Terakhir Pada Circular Link ListFindLastCLL(Head, P)

P = Head;While (P->Next != Head) P = P->Next;EndOfWhile;// Write(‘Alamat elemen terakhir adalah : ’, P);

Return

C. Operasi InsertingC.1 Sebagai Elemen Pertama / Di Awal ListAlgoritma Menyisipkan Elemen Pada Awal Cirular Link List

InsertFirstCLL(Head, X)Malloc(Temp);Temp->Info = X;If Head = NULL Then

Temp->Next=Temp;Else

Temp->Next = Head;FindLastCLL(Head, P)P->Next = Temp;

EndifHead = Temp;

Return

C.2 Sebagai Elemen TerakhirAlgoritma Menyisipkan Elemen Pada Akhir Circular Link List

InsertLast(Head, X)Malloc(Temp);Temp->Info = X;If Head = NULL Then

Temp->Next=Temp;Else

Temp->Next = Head;FindLastCLL(Head,P); {Alm Elemen terakhir (P)}P->Next = Temp;

EndifReturn

C.3 Sebagai Elemen Ke-N yang Temp (1 < N <= MAX)Tidak ada perbedaan dengan single link list linear.

top related