Sie sind auf Seite 1von 5

# HANDOUT 10 (LAB) – LINKED LIST

## Thursday, June 27th 2019

1.30 pm – 3.10 pm
Lecturer: Agnes I.S (agnesirenes@ieee.org)

Data Next

I. SIMPUL (NODE)

## Simpul / node dibentuk mendefinisikan simpul (node) ke dalam bentuk structure

struct Node
{
char data;
Node *next;
};

tipe data structure node yang telah didefiniskan sebelumnya. Pointer head didefinisikan dengan
nilai NULL.

## Prosedur insertFirst (input d : data)

Definisi variabel
ptr : pointer

Rincian langkah
New (ptr)
ptr.data  d

Page 1 of 5
IV. INSERT ELEMEN DI TENGAH

## Prosedur insertPosition (input p: position, d : data)

Definisi variabel
previous, current, new_nose : pointer

Rincian langkah
New (previous)
New (current)
New (new_node)
for i 1 to less than position
previous  current
current  current.next
end for
new_node.data  d
previous.next  new_node
new_node.next  current

## Prosedur insertLast (input d : data)

Definisi variabel
temp, ptr : pointer

Rincian langkah
New (ptr)
ptr.data  d
ptr.next  NULL

## if head equals to NULL

else
while temp.next is not NULL
temp  temp.next
temp.next  ptr
end if

## VI. CETAK ELEMEN LIST

Prosedur Print

Definisi variabel
ptr : pointer
sum : integer

Page 2 of 5
Rincian langkah
then write (“List is empty”)
else
New (ptr)
sum  0
for i  1 to ptr is not NULL
then write ptr.data
ptr  ptr.next
sum++
end for
write ("List size : ")
write sum
end if

LATIHAN 1
Buatlah sebuah program linked list dalam bahasa pemrograman C++ dengan fungsi yang dapat
menambah elemen di awal, di tengah, dan di akhir, dan kemudian mencetak elemen tersebut.
(Gunakan langkah 1 – 5) yang telah dijelaskan di atas.

## Prosedur deleteFirst (input d : data)

Definisi variabel
ptr : pointer

Rincian langkah
then write ("List kosong")
else
free(ptr)
end if

## Prosedur deletePosition (input p : position)

Definisi variabel
previous, current : pointer

Rincian langkah
New (previous)
New (current)
for i  1 to less than position
previous  current
current  current.next
end for
Page 3 of 5
previous.next  current.next

## IX. DELETE ELEMEN DI AKHIR

Prosedur deleteLast

Definisi variabel
ptr, prev : pointer

Rincian langkah
then write (“List kosong”)
else if head.next is equals to NULL
free ptr
else
New(prev)
while ptr.next is not NULL
prev  ptr
ptr  ptr.next
end while
prev.next  NULL
free ptr
end if

LATIHAN 2
Buatlah sebuah program linked list dalam bahasa pemrograman C++ dengan fungsi yang dapat
menambah dan menghapus elemen di awal, di tengah, di akhir, dan kemudian mencetak elemen
tersebut. (Gunakan langkah 1 – 9) yang telah dijelaskan di atas.

## LATIHAN 3 (KISI – KISI UAS)

Buatlah sebuah program C++ yang menghitung rata – rata kumpulan bilangan pada setiap
penambahan bilangan dan penghapusan bilangan menggunakan konsep linked list. Apabila
program dijalankan maka akan menghasilkan output berikut.

Page 4 of 5
Page 5 of 5