Data structure organizes the storage in computers so that we can easily access and change data. Stacks and Queues are the earliest data structure defined in computer science. A simple Python list can act as a queue and stack as well. A queue follows FIFO rule (First In First Out) and used in programming for sorting. It is common for stacks and queues to be implemented with an array or linked list.
A Stack is a data structure that follows the LIFO(Last In First Out) principle. To implement a stack, we need two simple operations:
- push – It adds an element to the top of the stack.
- pop – It removes an element from the top of the stack.
- Adding – It adds the items in the stack and increases the stack size. The addition takes place at the top of the stack.
- Deletion – It consists of two conditions, first, if no element is present in the stack, then underflow occurs in the stack, and second, if a stack contains some elements, then the topmost element gets removed. It reduces the stack size.
- Traversing – It involves visiting each element of the stack.
- Insertion order of the stack is preserved.
- Useful for parsing the operations.
- Duplicacy is allowed.
# Code to demonstrate Implementation of
# stack using list
x = ["Python", "C", "Android"]
['Python', 'C', 'Android', 'Java', 'C++'] C++ ['Python', 'C', 'Android', 'Java'] Java ['Python', 'C', 'Android']
A Queue follows the First-in-First-Out (FIFO) principle. It is opened from both the ends hence we can easily add elements to the back and can remove elements from the front.
To implement a queue, we need two simple operations:
- enqueue – It adds an element to the end of the queue.
- dequeue – It removes the element from the beginning of the queue.
Operations on Queue
- Addition – It adds the element in a queue and takes place at the rear end, i.e., at the back of the queue.
- Deletion – It consists of two conditions – If no element is present in the queue, Underflow occurs in the queue, or if a stack contains some elements then element present at the front gets deleted.
- Traversing – It involves to visit each element of the queue.
- Insertion order of the queue is preserved.
- Duplicacy is allowed.
- Useful for parsing CPU task operations.
# Queue is created as an object 'L'
L = queue.Queue(maxsize=10)
# Data is inserted in 'L' at the end using put()
# get() takes data from
# from the head
# of the Queue
9 6 7 4