File tree Expand file tree Collapse file tree 2 files changed +20
-3
lines changed Expand file tree Collapse file tree 2 files changed +20
-3
lines changed Original file line number Diff line number Diff line change @@ -59,12 +59,18 @@ def getLast(self):
59
59
raise ContainerEmpty
60
60
return self ._tail
61
61
62
+ def getIsEmpty (self ):
63
+ return not self ._head
64
+
62
65
first = property (
63
66
fget = lambda self : self .getFirst ())
64
67
65
68
last = property (
66
69
fget = lambda self : self .getLast ())
67
70
71
+ isEmpty = property (
72
+ fget = lambda self : self .getIsEmpty ())
73
+
68
74
def append (self , obj ):
69
75
tmp = self .Element (self ._tail , obj , None , self )
70
76
if self ._head == None or self ._tail == None :
@@ -92,13 +98,15 @@ def extract(self, obj):
92
98
prev = tmp
93
99
while tmp != None :
94
100
if tmp ._value == obj :
95
- if tmp == self ._head :
96
- tmp ._next ._prev = None
97
- self ._head = tmp ._next
101
+ if tmp == self ._head and tmp == self ._tail :
102
+ self .purge ()
98
103
elif tmp == self ._tail :
99
104
tmp ._prev = None
100
105
prev ._next = None
101
106
self ._tail = prev
107
+ elif tmp == self ._head :
108
+ tmp ._next ._prev = None
109
+ self ._head = tmp ._next
102
110
else :
103
111
prev ._next = tmp ._next
104
112
tmp ._prev = None
@@ -116,3 +124,4 @@ def __copy__(self):
116
124
tmp .append (current .value )
117
125
current = current ._next
118
126
return tmp
127
+
Original file line number Diff line number Diff line change @@ -62,6 +62,14 @@ def test_copy(self):
62
62
self .assertEqual (a .head .value , 1 )
63
63
self .assertEqual (a .tail .value , 3 )
64
64
65
+ def test_empty (self ):
66
+ self .assertTrue (self .l .isEmpty )
67
+ self .l .append (1 )
68
+ self .assertFalse (self .l .isEmpty )
69
+ self .l .extract (1 )
70
+ self .assertTrue (self .l .isEmpty )
71
+
72
+
65
73
66
74
if __name__ == "__main__" :
67
75
unittest .main ()
You can’t perform that action at this time.
0 commit comments