Skip to content

Commit 1e97ad4

Browse files
committed
isEmpty tested; extract fixed
1 parent 05e9c5e commit 1e97ad4

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

unit3/doublyLinkedList.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,18 @@ def getLast(self):
5959
raise ContainerEmpty
6060
return self._tail
6161

62+
def getIsEmpty(self):
63+
return not self._head
64+
6265
first = property(
6366
fget = lambda self: self.getFirst())
6467

6568
last = property(
6669
fget = lambda self: self.getLast())
6770

71+
isEmpty = property(
72+
fget = lambda self: self.getIsEmpty())
73+
6874
def append(self, obj):
6975
tmp = self.Element(self._tail, obj, None, self)
7076
if self._head == None or self._tail == None:
@@ -92,13 +98,15 @@ def extract(self, obj):
9298
prev = tmp
9399
while tmp != None:
94100
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()
98103
elif tmp == self._tail:
99104
tmp._prev = None
100105
prev._next = None
101106
self._tail = prev
107+
elif tmp == self._head:
108+
tmp._next._prev = None
109+
self._head = tmp._next
102110
else:
103111
prev._next = tmp._next
104112
tmp._prev = None
@@ -116,3 +124,4 @@ def __copy__(self):
116124
tmp.append(current.value)
117125
current = current._next
118126
return tmp
127+

unit3/test.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,14 @@ def test_copy(self):
6262
self.assertEqual(a.head.value, 1)
6363
self.assertEqual(a.tail.value, 3)
6464

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+
6573

6674
if __name__ == "__main__":
6775
unittest.main()

0 commit comments

Comments
 (0)