LINKED LIST
Single Linked List merupakan sebuah tempat yang disediakan pada satu area memori tertentu untuk menyimpan data yang dikenal dengan sebutan node atau simpul. Setiap node memiliki pointer yang menunjuk ke simpul berikutnya sehingga terbentuk satu untaian, dengan demikian hanya diperlukan sebuah variabel pointer. Susunan berupa untaian semacam ini disebut Single Linked List. Biasanya Linked List pada node terakhir akan menunjuk ke NULL, dimana NULL memilik nilai khusus yang artinya tidak menunjuk ke mana-mana.
Pembuatan Single Linked List dapat menggunakan 2 metode:
Ø LIFO (Last In First Out), aplikasinya : Stack (Tumpukan)
Ø FIFO (First In First Out), aplikasinya : Queue (Antrean)
ada 4 metode saja di dalam class Node yaitu :
Ø getData() digunakan untuk mendapatkan atau mengetahui sebuah nilai yang terdapat didalam setiap node.
Ø getNext() metode yang satu ini digunakan untuk mengetahui nilai yang berada di depannya.
Ø setData() ini digunakan untuk mengganti nilai yang terkandung di dalam sebuah list.
Ø setNext() merupakan metode yang digunakan untuk mengatur atau mendeklarasikan data yang ada di depannya.
Namun penggunaan class tersebut masih kurang efektif dan kurang enak untuk digunakan. Jadi, terdapat class tambahan yang bisa digunakan untuk mebuatnya semakin nyaman dan lebih mudah dipahami, class tersebut bernama ordered list dan un ordered list. Perbedaan dari kedua list tersebut hanya terdapat pada pengurutan datanya. Jadi, ordered list ini datanya akan selalu di urut mulai dari yang besar menuju yang kecil. Jadi ini diperuntukkan bagi item yang menggunakan angka. dan untuk unordered list list atau data yang dimasukkan kedalam list, tidak akan diurut, nah untuk penggunaan dalam rangka mempermudah ini, saya akan menggunakan unordered list karena, list ini bisa digunakan untuk menambahkan tipe data apa saja. Seperti integer dan string. Jadi akan memudah kan kalian dalam menggunakan class ini nantinya, nah class dari unordered list ini memiliki 5 buah metode untuk memberikan kalian kemudahan dalam menggunakan linked list, nah 5 buah metode dapat Anda lihat di bawah ini.
UnOrderedList() membuat suatu list baru yang kosong. Tidak memerlukan parameter dan mengembalikan suatu list kosong.
· add(item) menambahkan suatu item baru ke dalam list. Diperlukan item yang akan ditambahkan dan tidak mengembalikan apapun. Anggapan: item tersebut belum ada dalam list.
· remove(item) menghapus item dari dalam list. Diperlukan item dan akan mengubah list. Anggapan: item tersebut tersedia di dalam list.
· search(item) mencari item di dalam list. Perlu item dan mengembalikan suatu nilai boolean.
· isEmpty() menguji untuk melihat apakah list dalam keadaan kosong (empty). Tidak memerlukan parameter dan mengembalikan suatu nilai boolean.
· size() mengembalikan jumlah item di dalam list. Tidak memerlukan parametyer dan mengembalikan suatu integer
Berikut Source code untuk contoh Unorderedlist :
class Node:
def __init__(self,initdata):
self.data = initdata
self.next = None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self,newdata):
self.data = newdata
def setNext(self,newnext):
self.next = newnext
class Unorderedlist:
def __init__(self):
self.head = None
def show(self):
current = self.head
print('Head ->', end='')
while current != None:
print(current.getData(), end = '->')
current = current.getNext()
print('None')
def isEmpty(self):
return self.head == None
def add(self, item):
temp = Node(item)
temp.setNext(self.head)
self.head = temp
def size(self):
current = self.head
count = 0
while current != None:
count += 1
current = current.getNext()
return count
def search(self,item):
current = self.head
found = False
while current != None and not found:
if current.getData() == item:
found = True
else:
current = current.getNext()
return found
def remove(self,item):
current = self.head
previous = None
found = False
while not found:
if current.getData() == item:
found = True
else:
previous = current
current = current.getNext()
if previous == None:
self.head = current.getNext()
else:
previous.setNext(current.getNext())
mylist = Unorderedlist()
mylist.add(31)
mylist.add(20)
mylist.add(41)
mylist.show()
إرسال تعليق