Question: Using java Part A: Design and implement an array-based stack. Implement the following operations: push, pop, top, size, isEmpty, and isFull. Make sure your program
Using java
Part A: Design and implement an array-based stack. Implement the following operations: push, pop, top, size, isEmpty, and isFull. Make sure your program checks if the stack isFull 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.
()
()()()()()()()
((((((((())))))))
(()((()()())(())))
)(
((()()())))
(((((((()))))))
()()())()()()
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.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
