Question: Hand in: Program listing, output, written answers Note: For this assignment, you must implement your own stack, not use Java's built-in stack. The point is


Hand in: Program listing, output, written answers Note: For this assignment, you must implement your own stack, not use Java's built-in stack. The point is to learn how a stack is built, not just how to use one. Part A: Design and implement an array-based stack. Implement the following operations: push, pop, top, size, isEmpty, and is Full. Make sure your program checks if the stack is Full in the push operation, and if the stack isEmpty in the pop operation and top operations. Part B: Implement a stack-based bracket matching program that takes as input a string of brackets and outputs "All brackets matched or Mismatched bracket at position X where X is the position in the input string where the mismatch occurred. Test you program on the following inputs. 0 0000000 ( (O))))))) (OX000(0 DC (000) 000000 Part C: Implement a simple stack-based post-fix calculator. Your program should accept integer operands and the +, -, and * operators. Expressions should be entered one item per line with = on the final line to trigger the calculation and output of the result. Your program should detect invalid expressions (e.g., too few operands, too many operands). Part D: Modify your stack implementation in such a way that a client application using your stack is unaware of the underlying array-based implementation. For instance, in a C or C++ implementation, you would define function prototypes in .h files and implementation details in .c files. In Java and C#, you use interfaces. The application uses the interfaces (or .h files) with no knowledge of how the functions are implemented. That way the array-based implementation could be replaced with a linked list-based one without any change to the client application. Part E: (Optional, no marks) Top students should go ahead and try implementing a linked-list version of a stack and convincing themselves the linked list-based implementation could easily be swapped with the array-based one without change the application
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
