ITEC 2620M Introduction to Data Structures Instructor: Prof. Z. Yang Course Website: ec2620m.htm Office: Tel 3049
Stacks and Queues
3 Stack-based Recursion Computers use stacks to manage function calls/function returns –When a function is called, data is pushed onto the stack –When a function finishes, data is popped off the stack Rather than using the computer’s stack, we can use our own to implement recursion! Binary tree traversal
4 Stacks and Recursion Any recursive algorithm can be implemented non-recursively –Do you have to use a function that calls itself? No. You can use a stack to implement recursion –Do you have to use a recursive algorithm? Yes. How do you traverse a binary tree without a recursive algorithm?
5 Queues A queue is a “First-In, First-Out” = “FIFO” buffer –e.g. line-ups people enter from the back of the line people are served (exit) from the front of the line When elements are added, they are enqueued to the back When elements are removed, they are dequeued from the front enqueue() and dequeue() are the two defining functions of a queue Example Link-based Queue
6 Priority Queues Previous queues were based on entry order (e.g. LIFO, FIFO) Priority queues are based on item value Stacks and queues aren’t designed for searches BST could work, but there is more overhead than we need –don’t need completely sorted queue – only need first element