Linked List Operations

Table of Contents

Linked List Operations

Program gives you more detailed explanation on operations of linked list. It will help students to understand the concepts of linked list and its working. It will help beginners to understand the concepts of inked list.

Operations we have performed are:

  • Prepend
  • Insert from tail
  • Search a value
  • Delete from head
  • Delete from tail
  • Delete value
  • Traversing
class Node:
    def __init__(self, data):
        self.data = data
        self.next = None
class LinkedList:
    # Author : ITVoyagers Website : itvoyagers.in
    def __init__(self):
        self.head = None
        self.tail = None
        self.size=0
    
#....................................Insert value in begining...............................................
    def prepending(self, data):
        newnode=Node(data)
        if self.head ==None:
            self.head=newnode
            self.tail=newnode
        else:
            newnode.next=self.head
            self.head=newnode
        print("node inserted successfully with data ",data,"at the beginning")
        self.size+=1
# Author : ITVoyagers Website : itvoyagers.in
#....................................Insert value from tail...............................................
    def insertfromtail(self, data):
            newnode=Node(data)
            if self.tail ==None:
                self.head=newnode
                self.tail=newnode
            else:
                self.tail.next=newnode
                self.tail=newnode
            print("node inserted successfully with data ",data,"from the tail")
            self.size+=1
# Author : ITVoyagers Website : itvoyagers.in
#....................................search a  value .....................................................
    def search(self,value):
        self.n = 0
        current=self.head
        while(current!=None):
            self.n=self.n+1
            if (current.data!=value):
                current = current.next
            else:
                return True #if value is found
        return False #if value is not found
# Author : ITVoyagers Website : itvoyagers.in
#....................................Delete value from head...............................................
    def deletefromhead(self):
        if self.head==None:
            print("Empty linked list")
        else:
            value=self.head.data
            print("Deleted node is",value)
            self.head=self.head.next
            self.size-=1
#....................................Delete value from tail...............................................
    def deletefromtail(self):
        if self.head==None:
            print("Empty linked list")
        else:
            current=self.head
            while (current.next!=None):
                prev=current
                current=current.next
            value=current.data
            prev.next=None
            print("Deleted node is",value)
            self.tail=prev
            self.size-=1
# Author : ITVoyagers Website : itvoyagers.in
# ....................................traversing value from tail...............................................
    def deletevalue(self,value):
        current=self.head
        while (current!=None and current.data!=value):
            prev=current
            current=current.next
        if current==None:
            print("node not found")
        else:
            self.size-=1
            if current==self.head:
                self.head = current.next
            elif current== self.tail:
                prev.next=current.next
                self.tail=prev
            else:
                prev.next=current.next
            print("deleted successfully")
# Author : ITVoyagers Website : itvoyagers.in
# ....................................traversing value from tail...............................................
    def traversing(self):
        current=self.head
        while (current.next!=None):
            print(current.data)
            current=current.next
        print(current.data)
#........................................................................................................................
k=LinkedList()
print("Menu")
print("1.Prepend n2.Insert from tail n3.Search a value n4.Delete from head")
print("5.Delete from tail n6.Delete value  n7.Traversing ")
ch=int(input("Enter your choice"))
while(ch!=8):
    if ch==1:
        value=int(input("enter a value to be inserted from head"))
        k.prepending(value)
    elif ch==2:
        value=int(input("enter a value to be inserted from tail"))
        k.insertfromtail(value)
    elif ch==3:
        value=int(input("enter a value to be searched"))
        res=k.search(value)
        if res == True:
            print("Value is",value)
        else:
            print("Value not found")
    elif ch==4:
        k.deletefromhead()
    elif ch==5:
        k.deletefromtail()
    elif ch==6:
        value=int(input("enter a value to be deleted"))
        k.deletevalue(value)
    else:
        k.traversing()
    ch=int(input("Enter your choice"))
    # Author : ITVoyagers Website : itvoyagers.in

Output :

Menu
1.Prepend 
2.Insert from tail 
3.Search a value 
4.Delete from head
5.Delete from tail 
6.Delete value  
7.Traversing 
Enter your choice1
enter a value to be inserted from head3
node inserted successfully with data  3 at the beginning
Enter your choice1
enter a value to be inserted from head2
node inserted successfully with data  2 at the beginning
Enter your choice1
enter a value to be inserted from head5
node inserted successfully with data  5 at the beginning
Enter your choice7
5
2
3
Enter your choice

Note : Please note that above program is compatible with Python 3 or higher version

Leave a Comment