Рубрики
Без рубрики

Реализация очереди в Python

1. Вдею – это тип структуры данных. Очередь основан на принципе первым в первом (FIFO) I.E … Помечено Python, очередь, Datastructures.

1. Вдею – это тип структуры данных. Очередь основана на принципе первым пришел-первым вышел (FIFO) I.e первый вставленный элемент будет удален первым.

2. Внесение очереди элементов выполняется на одном конце Я сзади и удаление элементов выполняется на другом конце I.e Front Отказ

3. Вдею работы, похожие на очередь на счетчик билетов Первый человек в очереди это спереди И последний человек – это задний Отказ

Теперь давайте посмотрим на один пример реализации очередь с помощью linkedList

Пример:

class node:
    def __init__(self,val):
        self.val = val
        self.next = None

class queue:
    def __init__(self):
        self.front = None
        self.rear = None

# push element on rear side
    def push(self,val):
        if (self.rear == None):
            self.front = node(val)
            self.rear = self.front
        else:
            new_node = node(val)
            self.rear.next = new_node
            self.rear = self.rear.next

# pop deletes the first inserted element in queue in front side
    def pop(self):
        if (self.front == None):
            print('No elements to pop in Queue')

        else:
            self.front = self.front.next

# To show where front is currently at
    def show_front(self):
        print('front: ',self.front.val)

# To show where rear is currently at
    def show_rear(self):
        print('rear: ', self.rear.val)

    def display_queue(self):
# To display the whole queue we have to traverse the linkedList
# Using a dummy node starting from head
        q = []
        dummy = self.front
        while(dummy):
            q.append(dummy.val)
            dummy = dummy.next
# Reverse 'q' to avoid confusion
        q.reverse()
        print('Queue data: ', q)

Вход

x = queue() # instantiates a queue object named 'x' 
x.push(1)
x.push(2)
x.push(3)
x.push(4)
x.push(5)
x.push(6)
x.push(7)

x.display_queue(), x.show_front(), x.show_rear()
x.pop()
# front is changed after pop operation
x.display_queue(), x.show_front(), x.show_rear()

Выход

Queue data:  [7, 6, 5, 4, 3, 2, 1]
front:  1
rear:  7
# after pop operation
Queue data:  [7, 6, 5, 4, 3, 2]
front:  2
rear:  7

Оригинал: “https://dev.to/bharathkumardamarla/implementation-of-queue-in-python-4h53”