使用python实现队列

2024-03-29 10:02:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个程序来创建队列并添加、删除和显示元素。 为此,我创建了一个列表,然后从用户处获取输入,并附加相同数量的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])

Tags: theanforinputreturnifdefglobal
1条回答
网友
1楼 · 发布于 2024-03-29 10:02:46

在使用全局变量的任何方法的开头,都必须重新声明全局变量(在本例中为front、rear)。像这样

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

相关问题 更多 >