【发布时间】:2019-06-21 15:31:36
【问题描述】:
我正在创建一个程序来创建队列并添加、删除和显示元素。 为此,我创建了一个列表,然后从用户那里获取输入并附加相同数量的 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])
【问题讨论】:
-
您是否有家庭作业来创建队列,或者您只是需要一个队列来完成其他任务?如果是后者,只需使用
collections.deque,它已经有一些方法可以用来有效地在一端添加元素并从另一端移除元素。 -
这是一项我必须使用标准功能的作业
-
@NamanSood,我回答你的问题了吗?
-
@MayankMehtani 是的,非常感谢它解决了我所有的错误
标签: python python-3.x list data-structures queue