Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Edit the sortlist function and return a list that is sorted, please also finish

ID: 3825462 • Letter: E

Question

Edit the sortlist function and return a list that is sorted, please also finish the isSorted function(Please write in Python only)

import random

class Link (object):
    def __init__(self, data = None):
        self.data = data
        self.next = None

    def get_next(self):
        return self.next
  
    def set_next(self, n):
        self.next = n
  
    def get_data(self):
        return self.data
  
    def set_data(self, d):
        self.data = d
      
    def __str__(self):
        return str(self.data)
  
class LinkedList(object):
    def __init__(self, r = None):
        self.root = r
        self.size = 0
  
    def getNumLinks(self):
        return self.size
  
    def addFirst(self, data):
        link = Link(data)
        link.next = self.root
        self.root = link
        self.size += 1
  
    def addLast(self, data):
        if self.root == None:
            self.addFirst(data)
            return
        else:
            link = Link(data)
            temp = self.root
            while(temp.next):
                temp = temp.next
        temp.next = link
        self.size += 1
      
    def addInOrder(self, data):
        if self.root is None:
            data.next = self.root
            self.root = data
        elif self.root.data >= data.data:
            data.next = self.root
            self.root = data
        else:
            current = self.root
            while(current.next is not None and current.next.data < data.data):
                current = current.next
              
            data.next = current.next
            current.next = data
            self.size += 1
          
    def findUnordered(self, data):
        this = self.root
        while this.next:
            if this.data == data:
                return True
            else:
                this = this.get_next()
        return None
  
    def findOrdered(self, data):
        this = self.root
        while this.next:
            if this.data == data:
                return True
            else:
                this = this.get_next()
        return None

    def delete(self, data):
        de = self.root
        prev = None
        while de.next:
            if de.data == data:
                if prev:
                    prev.set_next(de.get_next())
                else:
                    self.root = de
                self.size -= 1
                return "Deleted Data"
            else:
                prev_node = de
                de = de.get_next()
        return "Could not delete data"
          
    def __str__(self):
        if self.root == None:
            return "List is empty"
        temp = self.root
        out = str(temp.data) + " "
        while(temp.next):
            temp = temp.next
            out += str(temp.data) + " "
        return out
  
    def copyList(self):
        empty = LinkedList()
        current = self.root
        while current.next != None:
            empty.addLast(current.data)
            current = current.next
        empty = str(empty) + str(current.data)
        return empty
   
    def reverseList(self):
        prev = None
        current = self.root
        while current != None:
            next = current.next
            current.next = prev
            prev = current
            current = next
        self.root = prev
      
    def sortList(self):
        prev = self.root
        current = prev.get_next()
        temp = current. get_next()
        stop = False
        while current != None:
            if current.get_data() > temp.get_data():
                prev.set_next(temp)
                temp.set_next(current)
                current.set_next(temp.get_next())
                prev = current
                current = temp
                temp = temp.get_next()
            else:
                previous = current
                current = temp
                temp = temp.get_next()

    def isSorted(self):

def main():
    lis1 = LinkedList()
    for i in range(12):
        new = random.randint(1, 99)
        lis1.addFirst(new)
    print(lis1)
    print()

main()

Explanation / Answer

//just you have to add last line. Rest all are correct in this defination

def sortList(self):
prev = self.root
current = prev.get_next()
temp = current. get_next()
stop = False
while current != None:
if current.get_data() > temp.get_data():
prev.set_next(temp)
temp.set_next(current)
current.set_next(temp.get_next())
prev = current
current = temp
temp = temp.get_next()
else:
previous = current
current = temp
temp = temp.get_next()
   return self.current

#Inorder to check if the list is sorted belwo ITER function in define which return node value.

def __iter__(self):
p = self.head
while p:
yield p.data
p = p.next

//Define isSorted function
def isSorted(self):
iter1 = iter(linked_list)
iter2 = iter(linked_list)
next(iter2, None) # drop the first element in iter2.
return all(i1 <= i2 for i1, i2 in zip(iter1, iter2))

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote