senarai berantai berputar (circular single link...

3
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 = Null Write(‘List kosong’) Else P = Head; Do Write(P->Info); P = P->Next; While P != Head; Endif Return Head Irna Ika Ida Ira Indah ALM INFO NEXT 1 Indah 4 2 Ika 6 3 4 Irna 2 5 Ida 1 6 Ira 5 4

Upload: vuonglien

Post on 04-Apr-2019

255 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SENARAI BERANTAI BERPUTAR (CIRCULAR SINGLE LINK LIST)staffsite.stimata.ac.id/.../download/071c4-circular-linked-list.pdfpengembangan senarai berantai (link list) yang pointer elemen

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

Page 2: SENARAI BERANTAI BERPUTAR (CIRCULAR SINGLE LINK LIST)staffsite.stimata.ac.id/.../download/071c4-circular-linked-list.pdfpengembangan senarai berantai (link list) yang pointer elemen

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

Page 3: SENARAI BERANTAI BERPUTAR (CIRCULAR SINGLE LINK LIST)staffsite.stimata.ac.id/.../download/071c4-circular-linked-list.pdfpengembangan senarai berantai (link list) yang pointer elemen

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.