stacks and queues problem solving club oct 19 2016 stacks
play

Stacks and Queues Problem Solving Club Oct 19 2016 Stacks A stack - PowerPoint PPT Presentation

Stacks and Queues Problem Solving Club Oct 19 2016 Stacks A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle Only two operations are allowed: push the item into the


  1. Stacks and Queues Problem Solving Club Oct 19 2016

  2. Stacks ● A stack is a container of objects that are inserted and removed according to the last-in first-out (LIFO) principle ● Only two operations are allowed: push the item into the stack, and pop the item out of the stack.

  3. Usage of stack ● Undo mechanism ● Function call stack ● Reverse a string ● Depth first search (DFS)

  4. Stack implementation ● Array stack ● Linked list stack implementation implementation ● Java ArrayList/Stack ● Java LinkedList ● C++ std::vector/stack ● C++ std::list

  5. Queues ● A queue is a container of objects (a linear collection) that are inserted and removed according to the first-in first-out (FIFO) principle. ● An excellent example of a queue is a line of students in the food court

  6. Usage of queues ● Job processing / scheduling ● Breadth first search (BFS) – single source shortest paths in an undirected graph

  7. Queue implementation ● Array-based double ended ● Linked list based queue queue ● Java LinkedList ● Java ArrayDeque ● C++ std::list ● C++ std::deque/ queue

  8. Priority queues ● A priority queue is like a regular queue or stack data structure ● But additionally each element has a "priority" associated with it. ● In a priority queue, an element with high priority is served before an element with low priority.

  9. Usage of priority queues ● Sorting (heapsort) ● Caching ● Dijkstra’s algorithm – singles source shortest paths in a directed graph

  10. Priority queue implementation ● Binary heap based ● Self-balancing binary priority queue search tree based priority queue ● Java PriorityQueue ● Java TreeSet ● C++ std::priority_queue ● C++ std::set

  11. Recap ● Stack – last-in first-out (LIFO). ● What is the complexity of push/pop? ● Answer: O(1) – constant time ● What is the preferred data structure for implementation? ● Answer: Array – faster and uses less memory than linked list ● Queue - first-in first-out (FIFO) ● What is the complexity of enqueue/dequeue? Answer: O(1) – constant time

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend