Реализация очереди с использованием Python - PullRequest
0 голосов
/ 28 января 2019

Я создаю программу для создания очереди и добавления, удаления и отображения элементов.Для этого я создаю список, затем беру данные от пользователей и добавляю то же число 0, а затем продолжаю в обычном режиме.Проблема заключается в том, что значение задней и передней части не изменяется и остается постоянным, что приводит к тому, что оно не отображается и не заполняется.

Как это исправить.

l=[]
global front
global rear
front=-1
rear=-1
print("Enter the number of elements ")
maxsize=int(input())
i=0
q=0
for q in range(0,maxsize):       #for creating an array with user input number of 0s
    l.append(0)

def isFull():
    if(rear==maxsize):
        return 1
    else:
        return 0

def isEmpty():
    if(front==-1 and rear==-1):
        return 1
    elif(front==rear):
        return 1
    else:
        return 0

def enqueue(n):
    if(isEmpty()==1):
        front=0
        rear=0
        l[rear]=n
        rear=rear+1
    else:
        l[rear]=n
        rear=rear+1

def dequeue():
    if(isEmpty()==1):
        return 1
    else:
        front=front+1

while(i==0):
    print("Add an element ?(0) \nDelete an element?(1) \nDisplay the 
elements?(2)\n")
    a=int(input())
    if(a==0):
        if(isFull()==1):
            print("Queue is full")
        else:
            b=int(input())
            enqueue(b)
    if(a==1):
        dequeue()
    if(a==2):
        for c in range(front,rear):
            print(l[c])

1 Ответ

0 голосов
/ 28 января 2019

Вы должны переопределить глобальные переменные (в данном случае спереди, сзади) в начале любого метода, использующего их.Как это

def enqueue(n):
    global front
    global rear
    if(isEmpty()==1):
        front=0
        rear=0
        l[rear]=n
        rear=rear+1
    else:
        l[rear]=n
        rear=rear+1
...