Anda di halaman 1dari 4

RANGKUMAN ALGORITMA LIST BERKAIT

1. Deklarasi tipe List (pointer)


type pointer: < Info: integer; Next: ^pointer;>
Head: pointer
2. Pembentukan simpul baru + list baru
Kamus
Head : pointer, {merupakan kepala list berkait}
R : pointer, {untuk menunjukkan simpul list baru}
Algoritma
New.^R
Info.^R 8
Next.^R nil
IF Next.^Head = nil THEN
Next.^Head R
ENDIF
3. Menambah simpul baru antara Head dan simpul pertama (di awal list)
Kamus
Head : pointer, {merupakan kepala list berkait}
Baru : pointer, {untuk menunjukkan simpul list baru}
Algoritma
New.^Baru
Info.^Baru 4
Next.^Baru nil
IF Next.^Head = nil THEN {List masih kosong}
Next.^Head Baru
ELSE {List sudah berisi data}
Next.^Baru Head
Next.^Head Baru
ENDIF
4. Menambah simpul baru di akhir
Kamus
Pakhir : pointer, {merupakan akhir list berkait}
Baru : pointer, {untuk menunjukkan simpul list baru}
Pnow : pointer
Algoritma
New.^Baru
Info.^Baru 15

Next.^Baru nil
IF Next.^Head = nil THEN {List masih kosong}
Next.^Head Baru
ELSE {List sudah berisi data, Cari posisi elemen terakhir, simpan di Pakhir}
Pakhir nil
Pnow Next.^Head
WHILE Pnow <> nil DO
Pakhir Pnow
Pnow Next.^Pnow
END WHILE
{Tambahkan data di akhir list}
IF Next.^Pakhir = nil THEN
Next.^Pakhir Baru
ENDIF
ENDIF
5. Menambah simpul baru di antara dua simpul
Kamus
bantu : pointer, {merupakan posisi simpul yang akan disisipkan setelahnya}
R : pointer, {untuk menunjukkan simpul list baru}
Algoritma
New.^Baru
Info.^Baru 6
Next.^Baru nil
IF Next.^Head = nil THEN {List masih kosong}
Next.^Head Baru
ELSE {List sudah berisi data, Cari posisi elemen terakhir, simpan di Pakhir}
Bantu nil
Pnow Next.^Head
WHILE Pnow <> nil AND Info.^Pnow <> Info.^Baru DO
Bantu Pnow
Pnow Next.^Pnow
END WHILE
{Tambahkan Baru setelah Bantu}
Next.^Baru Next.^Bantu;
Next.^Bantu Baru
ENDIF
6. Menampilkan Isi List

Kamus :
Head : pointer, merupakan kepala list berkait
P: pointer, untuk menunjukkan simpul list berkait yang ditelusuri
Algoritma :
P head
WHILE P <> nil DO
OUTPUT info.^P
P next.^P
ENDWHILE
7. Pencarian Elemen pada List Acak (Tidak Terurut)
Kamus :
Head : pointer, merupakan kepala list berkait
P: pointer, untuk menunjukkan simpul list berkait yang ditelusuri
Nilai_Cari : integer
Algoritma :
Input Nilai_Cari
P Next.^head
WHILE ( Next.^P <> Nil) and (Info.^P <> Nilai_cari) DO
P Next.^P
END WHILE
IF Info.^P = Nilai_Cari THEN
Output Nilai_Cari, Diketemukan
ELSE
Output Nilai_Cari, Tidak Diketemukan
END IF

8. Pencarian Elemen pada List Terurut


Kamus :
Head : pointer, merupakan kepala list berkait
P: pointer, untuk menunjukkan simpul list berkait yang ditelusuri
Nilai_Cari : integer
Algoritma :
Input Nilai_Cari
P Next.^head
WHILE ( Next.^P <> Nil) and (Info.^P < Nilai_Cari) DO
P Next.^P
END WHILE
IF Info.^P = Nilai_Cari THEN
Output Nilai_Cari, Diketemukan

ELSE
Output Nilai_Cari, Tidak Diketemukan
END IF

9. Menghapus simpul
Kamus :
Head : pointer, {merupakan kepala list berkait}
P: pointer, {untuk menunjukkan simpul list berkait yang ditelusuri}
Hapus: pointer, {simpul yang akan dihapus}
found: boolean
Nilai_Hapus : integer {nilai yang akan dihapus}
Algoritma :
Hapus head
P nil
found false
Input Nilai_Hapus
WHILE (not found) AND (Hapus <> nil) DO
IF Nilai_hapus = info.^Hapus
THEN Found true {posisi ditemukan}
ELSE
P Hapus;
Hapus next.^Hapus
ENDIF
ENDWHILE
IF not found
THEN OUTPUT Simpul yang dicari tidak ada
ELSE
IF Hapus = next.^head
THEN
{menghapus simpul pertama atau simpul tunggal}
Next.^Head next.^Hapus
ELSE
ENDIF
ENDIF

{hapus simpul sesudah P atau di akhir list atau diantara dua simpul}
Next.^P next.^Hapus

Anda mungkin juga menyukai