File tree Expand file tree Collapse file tree 1 file changed +105
-0
lines changed Expand file tree Collapse file tree 1 file changed +105
-0
lines changed Original file line number Diff line number Diff line change
1
+ class _Node :
2
+ __slots__ = '_element' , '_next'
3
+
4
+ def __init__ (self , element , next ):
5
+ self ._element = element
6
+ self ._next = next
7
+
8
+ class LinkedList :
9
+ def __init__ (self ):
10
+ self ._head = None
11
+ self ._tail = None
12
+ self ._size = 0
13
+
14
+ def __len__ (self ):
15
+ return self ._size
16
+
17
+ def isempty (self ):
18
+ return self ._size == 0
19
+
20
+ def addlast (self , e ):
21
+ newest = _Node (e , None )
22
+ if self .isempty ():
23
+ self ._head = newest
24
+ else :
25
+ self ._tail ._next = newest
26
+ self ._tail = newest
27
+ self ._size += 1
28
+
29
+ def addfirst (self , e ):
30
+ newest = _Node (e , None )
31
+ if self .isempty ():
32
+ self ._head = newest
33
+ self ._tail = newest
34
+ else :
35
+ newest ._next = self ._head
36
+ self ._head = newest
37
+ self ._size += 1
38
+
39
+ def addany (self , e , position ):
40
+ newest = _Node (e , None )
41
+ p = self ._head
42
+ i = 1
43
+ while i < position - 1 :
44
+ p = p ._next
45
+ i = i + 1
46
+ newest ._next = p ._next
47
+ p ._next = newest
48
+ self ._size += 1
49
+
50
+ def removefirst (self ):
51
+ if self .isempty ():
52
+ print ('List is empty' )
53
+ return
54
+ e = self ._head ._element
55
+ self ._head = self ._head ._next
56
+ self ._size -= 1
57
+ if self .isempty ():
58
+ self ._tail = None
59
+ return e
60
+
61
+ def removelast (self ):
62
+ if self .isempty ():
63
+ print ('List is empty' )
64
+ return
65
+ p = self ._head
66
+ i = 1
67
+ while i < len (self ) - 1 :
68
+ p = p ._next
69
+ i = i + 1
70
+ self ._tail = p
71
+ p = p ._next
72
+ e = p ._element
73
+ self ._tail ._next = None
74
+ self ._size -= 1
75
+ return e
76
+
77
+ def display (self ):
78
+ p = self ._head
79
+ while p :
80
+ print (p ._element ,end = '-->' )
81
+ p = p ._next
82
+ print ()
83
+
84
+ def search (self ,key ):
85
+ p = self ._head
86
+ index = 0
87
+ while p :
88
+ if p ._element == key :
89
+ return index
90
+ p = p ._next
91
+ index = index + 1
92
+ return - 1
93
+
94
+ L = LinkedList ()
95
+ L .addlast (7 )
96
+ L .addlast (4 )
97
+ L .addlast (12 )
98
+ L .addlast (8 )
99
+ L .addlast (3 )
100
+ L .display ()
101
+ print ('Size:' ,len (L ))
102
+ ele = L .removelast ()
103
+ L .display ()
104
+ print ('Size:' ,len (L ))
105
+ print ('Element Removed' ,ele )
You can’t perform that action at this time.
0 commit comments