Presentation is loading. Please wait.

Presentation is loading. Please wait.

ISOM MIS 215 Module 3 – Stacks and Queues. ISOM Where are we? 2 Intro to Java, Course Java lang. basics Arrays Introduction NewbieProgrammersDevelopersProfessionalsDesigners.

Similar presentations


Presentation on theme: "ISOM MIS 215 Module 3 – Stacks and Queues. ISOM Where are we? 2 Intro to Java, Course Java lang. basics Arrays Introduction NewbieProgrammersDevelopersProfessionalsDesigners."— Presentation transcript:

1 ISOM MIS 215 Module 3 – Stacks and Queues

2 ISOM Where are we? 2 Intro to Java, Course Java lang. basics Arrays Introduction NewbieProgrammersDevelopersProfessionalsDesigners MIS215 Binary Search Search Techniques Sorting Techniques Bubblesort Basic Algorithms Fast Sorting algos (quicksort, mergesort) Hashtables Graphs, Trees Linked Lists Stacks, Queues List StructuresAdvanced structures

3 ISOM Today’s buzzwords Stack  A data structure where items can be added to the top and removed from the top  A LIFO (Last In, First Out) Structure Queue  A data structure which can be used to add elements at one end, and remove from another  A FIFO (First In, First Out) Structure Priority Queue  A queue where highest priority items are removed first Expression Notations  Infix – standard notation A+B+C-D  PostFix – notation for better computability AB+C+D-  PreFix – Functional Notation -++ABCD

4 ISOM Stacks.. Think of a postman’s mail box... Before delivery, they “push” items on to it, i.e., put them on the top of the stack  they keep going to the bottom During delivery, they “pop” items off it (can’t reach down)  they are the last items put on Other “real-life” scenarios? Is it possible you would never pop off the first item you pushed on?  that’s starvation

5 ISOM What are some stacks?

6 ISOM Stacks: Concepts Q Q A Q A Push box A onto stack: Pop a box from stack: (empty) Push box Q onto empty stack:

7 ISOM Stack ADT Properties:  items are ordered by arrival (so not sorted)  can only access the last one stored commonly called Last-In-First-Out (LIFO) Actions  “push”: store an item  “pop”: retrieve an item  “peek”: see next item w/o retrieving  size, full, empty

8 ISOM Implementation of stacks, like the one for any other data structures, includes two basic approaches:  Contiguous implementation Stack entries are stored in arrays Data are accessed by using indices  linked implementation Stacks entries are stored in linked lists Data are accessed by using references Implementation of Stacks

9 ISOM Contiguous Stacks -- Diana Barb Bob Rick Jim Sue Mary John Tom Stack 0 1 2 3 4 5 6 7 8 9 10 11 12 13 top bottom -- Rick Jim Sue Mary John Tom Stack 0 1 2 3 4 5 6 7 8 9 10 11 12 13 top -- Diana Barb Bob Rick Jim Sue Mary John Tom Stack 0 1 2 3 4 5 6 7 8 9 10 11 12 13 top bottom After 9 “pushes” onto an empty stack After 3 “pops”

10 ISOM Queues You know what a queue is -- it’s a line you wait in Items get added to the end (rear, back, tail) Items come off the front (head)  commonly called First-In-First-Out (FIFO) I personally prefer head/tail or front/rear Eventually, an item comes off, right?  no starvation

11 ISOM Queue ADT Properties  items are ordered by arrival (so not sorted)  you access the oldest one inserted Actions  insert/enqueue/add  remove/dequeue/delete  peek, see next item w/o removing  size, full, empty

12 ISOM Implementation of Queues The Physical model  A linear array with the front always in the first position  Whenever front is deleted all the entries moved up. A linear array with two indices always increasing. A circular array with front and rear indices and one position left vacant. A circular array with front and rear indices and a Boolean variable to indicate fullness (or emptiness)

13 ISOM Example of a Circular Array This is only a logical circle!

14 ISOM Efficiencies... What’s the complexity?  Remember what we mean by complexity? how is the amount of work dependent upon the size of the input data?

15 ISOM Stack and Queue Complexity OperationStackQueue create/constructorO(1) size clear pushN/A popN/A peek Insert/enqueueN/A remove/dequeueN/A

16 ISOM Priority queues keep the items ordered by priority in the queue  so, clearly, not FIFO, right?  can an item be starved?

17 ISOM Priority queue efficiency Typical Array Implementation  insertion: O(N) you gotta move things around to keep them ordered  deletion: O(1)

18 ISOM Discussion – Uses of Stacks and Queues Reversing words Checking for palindromes Matching brackets in expressions CPU scheduling in Operating Systems Later… Traversal of Trees

19 ISOM How would you reverse a word? Input: structure Output: erutcurts

20 ISOM In-class exercise: “Parsing” One simple thing that a parser needs to do is to check for matched brackets { } [ ] ( ) Problem: Write a Java program that takes in a program and decides if the program is valid or not How would you solve it?

21 ISOM Parsing steps


Download ppt "ISOM MIS 215 Module 3 – Stacks and Queues. ISOM Where are we? 2 Intro to Java, Course Java lang. basics Arrays Introduction NewbieProgrammersDevelopersProfessionalsDesigners."

Similar presentations


Ads by Google