Lists, queues and stacks
-
Upload
andreeamolnar -
Category
Software
-
view
1.675 -
download
2
Transcript of Lists, queues and stacks
Lists, Queues, Stacks
CST200 – Week 5: Array based Implementation
Instructor: Andreea Molnar
Outline
•Lists
•Queues
•Stacks
ListA sequence of items that has at least the functionality below:
•Accessing an item at a given position
•Adding an item at a given position
•Removing an item
•Determining the number of items
StackA sequence of items in which:
•An item can be inserted only to the top
•Only the top item can be accessed/removed
In a stack items are inserted and removed according to the last-in first-out (LIFO) principle.
Stack
Functionality:
• push: insert an item to the top of the stack
• pop: remove the item at the top of the stack
• peek: get the item at the top of the stack
• isEmpty: assess if the stack is empty
• isFull: assess if the stack is full
Stack
Assuming that one has an object myStack:
myStack.push (25) 25 myStack
Stack
Assuming that one has an object myStack:
myStack.push (25)
myStack.push (10)10
25
myStack
StackAssuming that one has an object myStack:
myStack.push (25)
myStack.push (10)
int topValue = myStack.pop ()
10
25myStack
10 topValue
StackAssuming that one has an object myStack:
myStack.push (25)
myStack.push (10)
int topValue = myStack.pop ()
myStack.push (5)
5
25myStack
10 topValue
StackAssuming that one has an object myStack
myStack.push (25)
myStack.push (10)
int topValue = myStack.pop ()
myStack.push (5)
5
25myStack
10 topValue
StackAssuming that one has an object myStack:
myStack.push (25)
myStack.push (10)
int topValue = myStack.pop ()
myStack.push (5)
myStack.push (20)
20
5
25
myStack
10 topValue
StackAssuming that one has an object myStack:
myStack.push (25)
myStack.push (10)
int topValue = myStack.pop ()
myStack.push (5)
myStack.push (20)
topValue = myStack.pop ()
20
5
25
myStack
20 topValue
Queue
A sequence of items in which the first element inserted is the first one to be removed.
In a queue elements are inserted and removed based on the the first-in first-out (FIFO) principle.
Queue
Functionality:
• enqueue: add an item to the back of the queue
• dequeue: remove the front item
• getFront: get the front item
Queue
Assuming that one has an object myQueue:
myQueue.enque (25) 25 myQueue
Queue
Assuming that one has an object myQueue:
myQueue.enque (25)
int value = myQueue.deque () 25 myQueue
25 value
Queue
Assuming that one has an object myQueue:
myQueue.enque (25)
int value = myQueue.deque ()
myQueue.enque (20)
20 myQueue
25 value
QueueAssuming that one has an object myQueue:
myQueue.enque (25)
int value = myQueue.deque ()
myQueue.enque (20)
myQueue.enque (5)
20 5 myQueue
25 value
Queue
Assuming that one has an object myQueue:
myQueue.enque (25)
int value = myQueue.deque ()
myQueue.enque (20)
myQueue.enque (5)
value = myQueue.deque ()
20 5 myQueue
20 value
Summary
• A list is sequence of items that allows to access, add and remove an arbitrary element and determine the numbers of items (length/size of the list).
• A stack is a data structure in which an item can be added, accessed or removed only from the top.
• A queue is a data structure in which the first element added is the first one to be accessed/removed.