We are using a singly linked list with head pointer to implement Stack ADT. The stack top is maintained at the end of the linked list, i.e. stack top is the last item. Discuss whether this is a good design in term of time efficiency:
In a stack of N-items, how fast can you access the stack top? Push or pop?
If we add a tail pointer to the implementation. Is this a good idea looking at:
1. In a stack of N-items, how fast can you get the stack top item?
2. To push or pop an item to an N-items stack, how fast can you do it?