File tree Expand file tree Collapse file tree 1 file changed +72
-0
lines changed Expand file tree Collapse file tree 1 file changed +72
-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 display (self ):
30
+ p = self ._head
31
+ while p :
32
+ print (p ._element ,end = '-->' )
33
+ p = p ._next
34
+ print ()
35
+
36
+ def search (self ,key ):
37
+ p = self ._head
38
+ index = 0
39
+ while p :
40
+ if p ._element == key :
41
+ return index
42
+ p = p ._next
43
+ index = index + 1
44
+ return - 1
45
+
46
+ def addfirst (self , e ):
47
+ newest = _Node (e , None )
48
+ if self .isempty ():
49
+ self ._head = newest
50
+ self ._tail = newest
51
+ else :
52
+ newest ._next = self ._head
53
+ self ._head = newest
54
+ self ._size += 1
55
+
56
+ L = LinkedList ()
57
+ L .addlast (7 )
58
+ L .addlast (4 )
59
+ L .addlast (12 )
60
+ L .addlast (8 )
61
+ L .addlast (3 )
62
+ L .display ()
63
+ print ('Size:' ,len (L ))
64
+ L .addfirst (15 )
65
+ L .display ()
66
+ print ('Size:' ,len (L ))
67
+ L .addfirst (25 )
68
+ L .display ()
69
+ print ('Size:' ,len (L ))
70
+ L .addlast (35 )
71
+ L .display ()
72
+ print ('Size:' ,len (L ))
You can’t perform that action at this time.
0 commit comments