Linked List
Definisi
Linked list adalah sekumpulan elemen bertipe sama yang mempunyai keterurutan tertentu yang setiap elemennya terdiri dari bagian Linked List juga merupakan suatu cara untuk menyimpan data dengan struktur sehingga dapat secara otomatis menciptakan suatu tempat baru untuk menyimpan data yang diperlukan. Struktur ini lebih dinamis karena banyaknya elemen dengan mudah ditambah atau dikurangi, berbeda dengan array yang ukurannya tetap.
Ilustrasi
Algoritma
def
search(self,item):
current = self.head
found = False
while current != None and not found:
if current.getData() == item:
found = True
print('Data Ada di Dalam List')
else:
current = current.getNext()
return found
def remove(self,item):
current = self.head
previous = None
found = False
while current != None and not found:
if current.getData() == item:
found = True
else:
previous = current
current = current.getNext()
if previous == None:
self.head = current.getNext()
else:
if current != None:
previous.setNext(current.getNext())
if current is None:
print("Data Tidak Ada")
Kode Program
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 isEmpty(self):
return self.head == None
def add(self,item):
temp = Node(item)
temp.setNext(self.head)
self.head = temp
def show(self):
current = self.head
print ('Head ->',end=' ')
while current != None:
print (current.getData(), "->",end=' ')
current = current.getNext()
print (None)
def size(self):
current = self.head
count = 0
while current != None:
count = 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
print('data yang di pindah adalah :',item)
else:
previous = current
current = current.getNext()
if previous == None:
self.head = current.getNext()
else:
if current != None :
previous.setNext(current.getNext())
if current is None :
print('Data tidak ada')
mylist = UnorderedList()
a = []
q = []
for i in range(0,3):
c = input('Memasukkan angka ke Unorderlist : ')
d = int(c)
mylist.add(d)
a.append(d)
mylist.show()
f = 'Head -> '+str(a[0])+' -> '+str(a[1])+' -> '+str(a[2])+' -> None'
d = 'Head -> '+str(a[2])+' -> '+str(a[0])+' -> None'
print('----------------------------------------------')
table = [ [] for _ in range(10)]
def hash(x):
return x % 10
def insert(table,key,value):
table[hash(key)].append(value)
insert(table,8,f)
insert(table,4,4)
insert(table,3,3)
insert(table,4,14)
insert(table,3,21)
insert(table,3,23)
insert(table,9,9)
insert(table,12,d)
print (table)
Comments
Post a Comment