Requirements: 1. Implement a stack data structure from scratch in Java. 2. Your

Requirements:
1. Implement a stack data structure from scratch in Java.
2. Your stack implementation should support the following operations:
– Push: Add an element to the top of the stack.
– Pop: Remove and return the element from the top of the stack.
– Top: Retrieve the element at the top of the stack without removing it.
– isEmpty: Check if the stack is empty.
– Size: Determine the current size of the stack.
3. Create a driver program that demonstrates the use of your stack implementation. In the driver program, you should:
– Create an instance of your stack.
– Push a series of elements onto the stack.
– Pop elements from the stack and display them.
– Use the Top and isEmpty functions as necessary to check the status of the stack.
Grading Criteria:
1. Stack Implementation (15 points):
– The stack data structure is implemented correctly.
– The push, pop, top, isEmpty, and size functions work as expected.
– Proper use of templates for generic data storage.
2. Driver Program (10 points):
– The driver program demonstrates the use of the stack implementation.
– Proper input/output formatting.
– Error handling for empty stacks when popping elements.
Note:
– Make sure to adhere to best coding practices, including appropriate indentation, proper variable naming conventions, and comments where necessary.