Skip to content

Commit 182ae3f

Browse files
committed
pro8 solved
1 parent 99ad4d9 commit 182ae3f

File tree

2 files changed

+33
-3
lines changed

2 files changed

+33
-3
lines changed

unit3/pro8.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
'''
2+
Design and implement a class called DequeAsDoublyLinkedList that implements the Deque interface using a doubly-linked list. Select one of the approaches shown in Figure .
3+
'''
4+
15
from doublyLinkedList import DoublyLinkedList
26
from opus7.container import Container
37

@@ -23,10 +27,11 @@ def dequeueHead(self):
2327
return self._list.extract(self._list.head.value)
2428

2529
def enqueueTail(self, obj):
26-
pass
30+
self._list.append(obj)
2731

2832
def dequeueTail(self):
29-
pass
33+
assert not self._list.isEmpty
34+
return self._list.extract(self._list.tail.value)
3035

3136
def __iter__(self):
3237
pass
@@ -35,4 +40,8 @@ def _compareTo(self, obj):
3540
pass
3641

3742
def purge(self):
38-
pass
43+
self._list.purge()
44+
45+
#override
46+
def getIsEmpty(self):
47+
return self._list.isEmpty

unit3/test.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,5 +91,26 @@ def test_head(self):
9191
self.assertEqual(self.d.dequeueHead() , 1)
9292
self.assertRaises(AssertionError, self.d.dequeueHead)
9393

94+
def test_tail(self):
95+
self.d.enqueueTail(1)
96+
self.assertEqual(self.d.head.value, 1)
97+
self.assertEqual(self.d.tail.value, 1)
98+
self.d.enqueueTail(2)
99+
self.d.enqueueTail(3)
100+
self.assertEqual(self.d.head.value, 1)
101+
self.assertEqual(self.d.tail.value, 3)
102+
self.assertEqual(self.d.dequeueTail() , 3)
103+
self.assertEqual(self.d.dequeueTail() , 2)
104+
self.assertEqual(self.d.dequeueTail() , 1)
105+
self.assertRaises(AssertionError, self.d.dequeueTail)
106+
107+
def test_purge(self):
108+
self.d.enqueueHead(1)
109+
self.d.enqueueHead(2)
110+
self.d.enqueueHead(3)
111+
self.assertFalse(self.d.isEmpty)
112+
self.d.purge()
113+
self.assertTrue(self.d.isEmpty)
114+
94115
if __name__ == "__main__":
95116
unittest.main()

0 commit comments

Comments
 (0)