MaxSize=100 #全局变量,假设容量为100 class CSqQueue: #非循环队列类 def __init__(self): #构造方法 self.data=[None]*MaxSize #存放队列中元素 self.front=0 #队头指针 self.rear=0 #队尾指针 def empty(self): #判断队列是否为空 return self.front==self.rear def push(self,e): #元素e进队 def pop(self): #出队元素 def gethead(self): #取队头元素 if __name__ == '__main__': print() print(" 创建空循环队列qu") qu=CSqQueue() print(" qu:","空" if qu.empty() else "不空") print(" 进队1-4") qu.push(1) qu.push(2) qu.push(3) qu.push(4) print(" qu:","空" if qu.empty() else "不空") print(" 出队顺序:",end=' ') while not qu.empty(): print(qu.pop(),end=' ') print() print(" qu:","空" if qu.empty() else "不空") print()
时间: 2024-01-10 20:01:56 浏览: 84
这段代码实现了一个非循环队列类 CSqQueue,并进行了简单的测试。在测试部分,首先创建了一个空队列 qu,然后依次将元素 1、2、3、4 进队,再依次将队列中的元素出队并打印,最后再次判断队列是否为空。下面是完整代码:
```
MaxSize=100 #全局变量,假设容量为100
class CSqQueue: #非循环队列类
def __init__(self): #构造方法
self.data=[None]*MaxSize #存放队列中元素
self.front=0 #队头指针
self.rear=0 #队尾指针
def empty(self): #判断队列是否为空
return self.front==self.rear
def push(self,e): #元素e进队
if (self.rear+1)%MaxSize==self.front:
return False #队列已满
self.data[self.rear]=e
self.rear=(self.rear+1)%MaxSize
return True
def pop(self): #出队元素
if self.front==self.rear:
return None #队列为空
e=self.data[self.front]
self.front=(self.front+1)%MaxSize
return e
def gethead(self): #取队头元素
if self.front==self.rear:
return None #队列为空
return self.data[self.front]
if __name__ == '__main__':
print()
print(" 创建空循环队列qu")
qu=CSqQueue()
print(" qu:","空" if qu.empty() else "不空")
print(" 进队1-4")
qu.push(1)
qu.push(2)
qu.push(3)
qu.push(4)
print(" qu:","空" if qu.empty() else "不空")
print(" 出队顺序:",end=' ')
while not qu.empty():
print(qu.pop(),end=' ')
print()
print(" qu:","空" if qu.empty() else "不空")
print()
```
输出结果为:
```
创建空循环队列qu
qu: 空
进队1-4
qu: 不空
出队顺序: 1 2 3 4
qu: 空
```
阅读全文