Skip to main content

Simple Queue Implementation using Python

Stacks and Queues are not data structures, they are basically abstract data types. The simple data structure can be an array or a linked list.

Queues are FIFO.. First In and First Out.

Queues do have real world operations like:-
1.    Token System
2.    Organising data to archive based on age.
3.    Scheduling
4.    Any task which involves first come first serve basis.

Below is a simple implementation of Queue using Python.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Queue:

    def __init__(self):
        self.queue = []

    def isEmpty(self):
        return self.queue == []

    def enqueue(self, data):
        self.queue.append(data)

    def dequeue(self):
        data = self.queue[0]
        del self.queue[0]
        return data

    def peek(self):
        return self.queue[0]

    def sizeQueue(self):
        return len(self.queue)

    def dispQueue(self):
        for l in range(0,len(self.queue)):
            print ("Position {0} Element is {1}".format(l,self.queue[l]))

'''-------------------------- Main Code ------------------------------------'''
i = 0
numberOfElements =int(input("Enter number of Elements to enqueue to queue:        "))
userqueue = Queue()

for i in range(0, numberOfElements):
    number =int(input("Enter the {0} item number to enqueue to queue at first:        ".format(i)))
    userqueue.enqueue(number)

print("Size of queue is : {0} ".format(userqueue.sizeQueue()))
print("dequeue: ",userqueue.dequeue())

userqueue.dispQueue()




Comments

Popular posts from this blog

Solution Python QnA #1

Solution for Python QnA for November 14, 2018. # OUTPUT****************************************** >>> x = input () 12 >>> y = int ( input ( 'Please enter a number' )) Please enter a number45 >>> x + y Traceback (most recent call last): File "<stdin>" , line 1 , in < module > TypeError : must be str , not int >>> y + y 90 >>> x + x '1212' In this (x+y); addition of integer and string is not allowed. hence we get the TypeError.

Picking the structure!!

Use of arrays, rather sorted arrays or a linked list is somewhat difficult because both have their pros and cons.  Arrays excel when we have to perform a binary search while it’s faster to add and remove elements from linked lists.  A tree is one structure where there is ONLY ONE path to reach to a node. This can be explained further as “Nodes cannot be in closed loop” . Also there is a hierarchical relationship of parent and child. The average complexity varies from logarithmic to linear time. Now coming further to a data structure BSTs aka Binary Search Trees . Points to be remembered here:- Maximum two children. Left child is smaller than parent. Right one is greater than parent. Traversals :-   In order Traversal Ascending Sort; left subtree + root+ right subtree. So the above tree will look like:  4, 12, 16, 25, 28, 32 Pre order Traversal Root + left subtree + right subtree recursively. Eg: 25, 12, 4, 16, 32, 28 Post Order Traversal

Kick starting with Raspberry Pi

To start any machine first it has to be assembled. Though this is a very old, simple and well answered/documented question but still it’s being asked so many times that I have decided to write a post. There are 2 versions that we can get running:- 1.    Using NOOBS (New Out Of the Box Software) 2.    Using Raspbian Noobs essentially contains Raspbian with same selection menu. Raspbian can be installed with NOOBS or downloaded as a separate image (.img file) and then burnt onto an SD card. Raspbian comes pre-installed with plenty of software for education, programming and general use. It has Python, Scratch, Sonic Pi, Java, Mathematica and more. General steps to perform for NOOBS:- 1.    Download NOOBS.zip from here . 2.    Use SD Card formatter to quick format the SD card. 3.    Copy the contents of ZIP file to the SD Card. 4.    Now you can directly use this SD card into your RPi. General steps to perform for Raspbian:- 1.    Download Raspbian Jessie .zip. The zip file he