我正在创建一个程序来创建队列并添加,删除和显示元素。 为此,我创建了一个列表,然后从用户那里获取输入并附加相同数量的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])
答案 0 :(得分:1)
您必须在使用全局变量的任何方法的开头重新声明全局变量(在这种情况下为front,在此情况下为后)。像这样
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