Optimize CTQueue for O(1) Remove with Linked List (Fixes #9)#11
Optimize CTQueue for O(1) Remove with Linked List (Fixes #9)#11jordanmontt merged 2 commits intopharo-containers:masterfrom
Conversation
|
@jordanmontt please look for this one |
Pharo64-12.xml
Outdated
| @@ -0,0 +1 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?><testsuite name="Pharo64-12" tests="13" failures="0" errors="0" time="0.01"> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testAddGarantyFIFOOrder" time="0.002"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testIsEmpty" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testQueueGarantyFIFOOrder" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testPeek" time="0.001"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testAddAll" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testEmptyQueue" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testLargeQueuePerformance" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testAdd" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testQueue" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testRemove" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testEmptyQueueRemove" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testRemoveIfNone" time="0.0"></testcase> <testcase classname="Containers.Queue.Tests.CTQueueTest" name="testPoll" time="0.0"></testcase> <system-out><![CDATA[]]></system-out> <system-err><![CDATA[]]></system-err></testsuite> No newline at end of file | |||
| "Verify FIFO behavior and performance with a large queue." | ||
| | queue size | | ||
| queue := self queueClass new. | ||
| size := 1000. |
There was a problem hiding this comment.
I would say that 1000 is not that large
|
The code looks good! but can you add more tests? And also, there is a weird file that got added |
Pull Request Test Coverage Report for Build 14144595852Details
💛 - Coveralls |
|
issue: 1 |

This PR fixes #9 by replacing OrderedCollection in CTQueue with a singly linked list using CTQueueNode, making remove and poll O(1) instead of O(n).
Changes: