Tuesday, August 6, 2024

Singly Linked List Code (Answer)

Follow me

Link of SLL Chapter: SLL

Link of SLL Code Question: SLL Code Question Link


Singly Linked List Code (Answer)

(Creating a node)
👇
class Node:
    def __init__(self, items=None, next=None):
        self.items=items
        self.next=next

(Creating a Singly Linked List Code)
👇
class SLL:
    def __init__(self, start=None):
        self.start=start
    def is_empty(self):
        return self.start==None
    def insert_at_start(self,data):
        n=Node(data,self.start)
        self.start=n
    def insert_at_last(self,data):
        n=Node(data)
        if not self.is_empty():
            temp=self.start
            while temp.next is not None:
                temp=temp.next
            temp.next=n
        else:
            self.start=n
    def search(self,data):
        temp=self.start
        while temp is not None:
            if temp.items==data:
                return temp
            temp=temp.next
        return None
    def insert_after(self,temp,data):
        if temp is not None:
            n=Node(data,temp.next)
            temp.next=n
    def print_list(self):
        temp=self.start
        while temp is not None:
            print(temp.items,end=' ')
            temp=temp.next
    def delete_first(self):
        if self.start is not None:
            self.start=self.start.next
    def delete_last(self):
        if self.start is None:
            pass
        elif self.start.next is None:
            self.start=None
        else:
            temp=self.start
            while temp.next.next is not None:
                temp=temp.next
            temp.next=None
    def delete_item(self,data):
        if self.start is None:
            pass
        elif self.start.next is None:
            if self.start.items==data:
                self.start=None
        else:
            temp=self.start
            if temp.items==data:
                self.start=temp.next
            else:
                while temp.next is not None:
                    if temp.next.items==data:
                        temp.next=temp.next.next
                        break
                    temp=temp.next
    def __iter__(self):
        return SLLiterator(self.start)
class SLLiterator:
    def __init__(self,start):
        self.current=start
    def __iter__(self):
        return self
    def __next__(self):
        if not self.current:
            raise StopIteration
        data=self.current.items
        self.current=self.current.next
        return data

mylist=SLL()
mylist.insert_at_start(20)
mylist.insert_at_start(40)
mylist.insert_at_start(60)
mylist.insert_at_last(80)
mylist.insert_at_last(100)
mylist.insert_at_last(120)
mylist.delete_first()
mylist.print_list()

for x in mylist:
    print(x,end=' ')

No comments:

Post a Comment

Online Calculator

Follow Me 0 C % / * 7 8 9 - 4 5 6 +...