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

Popular Posts