Learn practical skills, build real-world projects, and advance your career
Updated 3 years ago
!pip install jovian --upgrade --quiet
import jovian
filename="linked list"
class Node:
def __init__(self,data):
self.data=data ## creating the new node
self.ref=None;
class linkedlist:
def __init__(self):
self.head=None; ##keeping head to none
def printLL(self):
if self.head is None:
print("linked list is empty")
else:
n=self.head
while n is not None:
print(n.data,"--->",end=" ") ##checking elements in linked list
n=n.ref
def addbegin(self,data):
new_node=Node(data) ###adding data or value in node
new_node.ref=self.head ### adding reference of previous first node in new node
self.head=new_node ### adding refernce of new node in head value
def addend(self,data):
new_node=Node(data)
if self.head is None:
self.head=self.new_node
else:
n=self.head
while n.ref is not None:
n=n.ref
n.ref=new_node
def addafter(self,data,x):
n=self.head
while n is not None:
if x==n.data:
break
n=n.ref
if n is None:
print("the node is not present in the linked list")
else:
new_node=Node(data)
new_node.ref=n.ref
n.ref=new_node
def addbefore(self,data,x):
n=self.head
if n is None:
print("linked list is empty")
return
if n.data==x:
new_node=Node(data)
new_node.ref=n.ref
self.head=new_node
return
while n.ref is not None:
if n.ref.data==x:
break
n=n.ref
if n.ref is None:
print("node is not found in linked list")
else:
new_node=Node(data)
new_node.ref=n.ref
n.ref=new_node
ll=linkedlist()
ll.addbegin(20)
ll.addend(300)
ll.addbegin(40)
ll.addafter(200,40)
ll.addbefore(500,20)
ll.printLL()
40 ---> 200 ---> 500 ---> 20 ---> 300 --->
jovian.commit(filename="linked list",Environment=None)
[jovian] Attempting to save notebook..