Download presentation
Presentation is loading. Please wait.
1
Stacks and Queues
2
Stacks A stack is an abstract data structure, with some special properties: Insertion and deletion is only allowed at the end of the stack (usually called the top) Due to this restriction, elements are removed from the stack in the opposite order in which they were added This is called LIFO order (Last In, First Out) RHS – SWC
3
Stacks public interface Stack<T> { void push(T element);
T pop(); T peek(); } RHS – SWC
4
Stacks D C B A push(D) D = pop() push(C) C = pop() push(B) B = pop()
push(A) A A = pop() RHS – SWC
5
Stacks Note that we have not stated exactly how a Stack is implemented
Can be done in various ways (array, linked list, etc.) However, data structure should support efficient (O(1)) insertion and removal at the end of the collection RHS – SWC
6
Stacks What are stacks used for…? Expression evaluation
Memory management …any situation where LIFO order is the proper order for processing data RHS – SWC
7
Stacks RHS – SWC
8
Stacks The (in)famous HP15-C pocket calculator used Reverse Polish Notation for entering and evaluating expressions This notation is very closely related to stacks Loved by many, hated by more… RHS – SWC
9
Stacks 12 x 37 is not typed in as: 1 2 x 3 7 = but rather as: 1 2 E 3
RHS – SWC
10
Stacks X 37 444 12 Push(X) X = pop() Push(37) 37 = pop() Push(12)
RHS – SWC
11
Queues A queue is (also) an abstract data structure, with some special properties: Insertion is only allowed at the end of the queue (usually called the tail) Deletion is only allowed at the start of the queue (usually called the head) Elements are removed from the stack in the same order in which they were added This is called FIFO order (First In, First Out) RHS – SWC
12
Queues public interface Queue<T> { void add(T element);
T remove(); T peek(); } RHS – SWC
13
Queues D C B A add(D) D = remove() add(C) C = remove() add(B)
B = remove() add(A) A A = remove() RHS – SWC
14
Queue Like for a Stack, a Queue can be implemented in various ways
Data structure should support efficient (O(1)) insertion and removal at the start and end of the collection Linked list likely choice RHS – SWC
15
Queue What are queues used for…? Event handling
All situations where we need to process data in the order it is produced, but cannot process data immediately RHS – SWC
16
Stacks and Queues in Java
Stack<T> is part of Java library, and can be used as-is Queue<T> is an interface! There are several implementations of the Queue interface availabe See the documentation for details RHS – SWC
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.