Question
For this programming assignment, you will implement a Stack whose size can grow as elements are inserted into the stack. You will build three different
For this programming assignment, you will implement a Stack whose size can grow as elements are inserted into the stack. You will build three different implementations of this Stack. Two of these implementations will be array-based. Each of these two should take an initial capacity for the stack in the constructor. The only difference between these implementations will be what happens when the Stack is full. For the first implementation, ArrayStack, you should increase the size of the array by a constant amount. For the second implementation, DoublingArrayStack, you should double the size of the array. Finally, for the third implementation, you should implement a Stack using a Linked List. You will now time your three implementations. For each version of your stack, push a large amount of random numbers onto the stack, these numbers should be read in from a file, one number per line, i.e., 5
4
3
566
32
34
Your program should be able to push into the stack as many numbers as there are in the file. Time how long this takes. However, you should measure the total time at fixed intervals (i.e., every 10000 push operations). For the array-based implementations, you should start with some small capacity significantly smaller than the maximum number of push operations. For the ArrayStack, your increment amount should also be significantly smaller than the number of push operations. You will then graph the times for the three implementations. This process will allow you to see how your choice of implementation can affect performance.
For the Linked List, you will need to implement another class for the nodes in the Linked List. Be sure to test the correctness of your algorithms and implementations. Your code will be graded based on whether or not it compiles, runs, produces the expected output, produces correct output, whether or not your experimental setup is correct, and your coding style (does the code follow proper indentation/style and comments).
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started