Buatlah sebuah program python single Linked list yang dapat melakukan

Berikut ini adalah pertanyaan dari dikgungjunxd pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Buatlah sebuah program python single Linked list yang dapat melakukan operasi Insert Depan, Insert Belakang, Hapus Depan, Hapus Belakang, Hapus semua, Tampilkan Data.​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Program python linked list: class LinkedList:

   def __init__(self):

       self.head = None

   def addStart(self, data):

       # create a temporary node

       tempNode = Node(data)

       tempNode.setLink(self.head)

       self.head = tempNode

       del tempNode

   def addEnd(self, data):

       start = self.head

       tempNode = Node(data)

       while start.getNextNode():

           start = start.getNextNode()

       start.setLink(tempNode)

       del tempNode

       return True

   def display(self):

       start = self.head

       if start is None:

           print("Empty List!!!")

           return False

       while start:

           print(str(start.getData()), end=" ")

           start = start.link

           if start:

               print("-->", end=" ")

       print()

   def length(self):

       start = self.head

       size = 0

       while start:

           size += 1

           start = start.getNextNode()

       # print(size)

       return size

  def indexing(self, data):

       start = self.head

       position = 1

       while start:

           if start.getData() == data:

               return position

           else:

               position += 1

               start = start.getNextNode()

   def removing(self, item):

       start = self.head

       previous = None

       found = False

       while not found:

           if start.getData() == item:

               found = True

           else:

               previous = start

               start = start.getNextNode()

       if previous is None:

           self.head = start.getNextNode()

       else:

           previous.setLink(start.getNextNode())

       return found

  def Maxim(self):

       start = self.head

       largest = start.getData()

       while start:

           if largest < start.getData():

               largest = start.getData()

           start = start.getNextNode()

       return largest

   def Minus(self):

       start = self.head

       smallest = start.getData()

       while start:

           if smallest > start.getData():

               smallest = start.getData()

           start = start.getNextNode()

       return smallest

   def pushing(self, data):

       self.addToEnd(data)

       return True

   def popping(self):

       start = self.head

       previous = None

       while start.getNextNode():

           previous = start

           start = start.getNextNode()

       if previous is None:

           self.head = None

       else:

           previous.setLink(None)

           data = start.getData()

           del start

           return data

   def atIndex(self, position):

       start = self.head

       position = int(position)

       pos = 1

       while pos != position:

           start = start.getNextNode()

           pos += 1

       data = start.getData()

       return data

   def copy(self):

       temp = LinkedList()

       start = self.head

       temp.addToStart(start.getData())

       start = start.getNextNode()

       while start:

           temp.addToEnd(start.getData())

           start = start.getNextNode()

       return temp

   def clear(self):

       self.head = None

       return True

   def removePosition(self, position):

       data = self.atIndex(position)

       self.remove(data)

       return data

   def toString(self, seperator=""):

       start = self.head

       finalString = ""

       while start:

           tempString = start.getData()

           finalString += str(tempString)

           start = start.getNextNode()

           # if next node exists only the append seperator

           if start:

               finalString += seperator

       return finalString

   def count(self, element):

       start = self.head

       count1 = 0

       while start:

           if start.getData() == element:

               count1 += 1

           start = start.getNextNode()

       return count1

   def toList(self):

       start = self.head

       tempList = []

       while start:

           tempElement = start.getData()

           tempList.append(tempElement)

           start = start.getNextNode()

       return tempList

   def toSet(self):

       start = self.head

       tempSet = set()

       while start:

           tempElement = start.getData()

           if tempElement not in tempSet:

               tempSet.add(tempElement)

           start = start.getNextNode()

       return tempSet

   def reverse(self):

       start = self.head

       tempNode = None

       previousNode = None

       while start:

           tempNode = start.getNextNode()

           start.setLink(previousNode)

           previousNode = start

           start = tempNode

       self.head = previousNode

       return True

   def sort(self):

       start = self.head

       beginNode = start

       while beginNode:

           tempNode = beginNode

           tempNode2 = beginNode

           smallest = beginNode.getData()

           while tempNode:

               if smallest > tempNode.getData():

                   smallest = tempNode.getData()

                   tempNode2 = tempNode

               tempNode = tempNode.getNextNode()

           temp = beginNode.getData()

           beginNode.updateData(tempNode2.getData())

           tempNode2.updateData(temp)

           beginNode = beginNode.getNextNode()

   def sorted(self):

       start = self.head

       tempList = self.copy()

       tempList.sort()

       return tempList

Penjelasan:

Daftar tertaut atau linked list ialah suatu  struktur data linier. Tidak seperti array, yang juga merupakan komponen data linier serta campuran, daftar tertaut terbentuk dengan cara dinamis. Saat dimulai program, item daftar tertaut tidak punya suatu data. Elemen dari daftar tertaut (disebut node) dibuat dari waktu ke waktu, layaknya yang ditunjukkan.

Pelajari lebih lanjut

Pelajari lebih lanjut materi tentang penjelassan tentang linked list: yomemimo.com/tugas/29298273

#BelajarBersamaBrainly

Semoga dengan pertanyaan yang sudah terjawab oleh grahatama dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Mon, 11 Jul 22