-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathLinkedList.py
More file actions
98 lines (92 loc) · 2.61 KB
/
LinkedList.py
File metadata and controls
98 lines (92 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import time
class Node:
length=0
head=None
#Node creation and setters and getters
def __init__(self,Data=None,NextNode=None):
self.data=Data
self.nextNode=NextNode
def setData(self,data):
self.data=data
def getData(self):
return self.data
def getNext(self):
return self.nextNode
def setNext(self,nextNode):
self.nextNode=nextNode
def hasNext(self):
return self.nextNode !=None
def insert_at_back(self,data):
newnode=Node()
newnode.setData(data)
if(self.head==None):
self.head=newnode
self.length+=1
else:
current=self.head
while current.getNext() !=None:
current=current.getNext()
current.setNext(newnode)
self.length+=1
#display the list
def display(self):
current=self.head
print(current.getData(),end=" ")
while current.hasNext():
current=current.getNext()
print(current.getData(),end=" ")
print()
#insert a value at starting of the lis
def insert_at_starting(self,data):
newnode=Node()
newnode.setData(data)
if(self.length==0):
self.head=newnode
self.length+=1
else:
newnode.setNext(self.head)
self.head=newnode
self.length+=1
def delete_last(self):
if self.length==0:
print("Nothing in linkedlist")
else:
current=self.head
prev=self.head
while current.hasNext():
prev=current
current=current.getNext()
prev.setNext(None)
self.length-=1
def delete_first(self):
if self.length==0:
print("Nothing to delete")
else:
self.head=self.head.getNext()
self.length-=1
def delete_a_value(self,value):
if self.length==0:
print("Empty list")
else:
prev=self.head
current=self.head
while current.getData()!=value:
prev=current
current=current.getNext()
prev.setNext(current.getNext())
self.length-=1
def anil(self):
pass
#create a object and example
# head=Node()
# head.insert_at_back( 25)
# head.insert_at_starting(12)
# head.insert_at_back( 35)
# head.insert_at_starting(13)
# head.display()
# head.delete_last()
# head.display()
# head.delete_first()
# head.display()
# head.delete_a_value(25)
# head.display()