Presentation is loading. Please wait.

Presentation is loading. Please wait.

Stacks and Queues.

Similar presentations


Presentation on theme: "Stacks and Queues."— Presentation transcript:

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 – SOC

3 Stacks public interface Stack<T> { void push(T element);
T pop(); T peek(); } RHS – SOC

4 Stacks D C B A push(D) D = pop() push(C) C = pop() push(B) B = pop()
push(A) A A = pop() RHS – SOC

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 – SOC

6 Stacks What are stacks used for…? Expression evaluation
Memory management …any situation where LIFO order is the proper order for processing data RHS – SOC

7 Stacks RHS – SOC

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 stakcs Loved by many, hated by more… RHS – SOC

9 Stacks 12 x 37 is not typed in as: 1 2 x 3 7 = but rather as: 1 2 E 3
RHS – SOC

10 Stacks X 37 444 12 Push(X) X = pop() Push(37) 37 = pop() Push(12)
RHS – SOC

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 – SOC

12 Queues public interface Queue<T> { void add(T element);
T remove(); T peek(); } RHS – SOC

13 Queues D C B A add(D) D = remove() add(C) C = remove() add(B)
B = remove() add(A) A A = remove() RHS – SOC

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 – SOC

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 – SOC

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 – SOC

17 Exercises Review: R15.11, R15.12 Programming: P15.11, P15.12 RHS – SOC


Download ppt "Stacks and Queues."

Similar presentations


Ads by Google