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”