diff --git a/labs/12_stacks_and_queues/README.md b/labs/12_stacks_and_queues/README.md new file mode 100644 index 0000000..292cf9a --- /dev/null +++ b/labs/12_stacks_and_queues/README.md @@ -0,0 +1,44 @@ +# Lab 12 — Stacks and Queues + +In this lab, you will implement queues in different ways, and then fix memory leaks in the provided program. + +## Checkpoint 1: + +*estimate: 30-40 minutes* + +Form a team of two members. This [levelOrder.cpp](levelOrder.cpp) program traverses a binary tree by level order. It prints the following message to STDOUT: + +```console +Level Order Traversal: 1 2 3 4 5 6 7 +Level Order Traversal: 1 2 3 4 5 6 7 8 9 +Level Order Traversal: 1 2 3 4 5 6 7 8 +``` + +Read the code, and then run the program to see its output. After that, replace the STL queue library with the STL stack library, and implement the queue using two stacks. Do not change the *main* function. Do not change the *levelOrderTraversal* function, except this line: + +```cpp +queue myQueue; +``` + +**To complete this checkpoint**: Show a TA your program, and your test results. Your program should still produce the same results as the original program. And you must be able to explain your program. + +## Checkpoint 2: + +*estimate: 40-50 minutes* + +Form a new team of two members. Re-implement the queue using the STL list library. Still, do not change the *main* function, and do not change the *levelOrderTraversal* function, except this line: + +```cpp +queue myQueue; +``` + +**To complete this checkpoint**: Show a TA your program, and your test results. Your program should still produce the same results as the original program. And you must + be able to explain your program. + +## Checkpoint 3: + +*estimate: 15-20 minutes* + +The provided program clearly has memory leaks. Fix the memory leaks. This is an individual checkpoint, do not work with another student. + +**To complete this checkpoint**: Show a TA your program, and your test results with either Valgrind or DrMemory.