Python环境下根据我所给的代码写出队的主函数 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进队 assert (self.rear+1)%MaxSize!=self.front #检测队满 self.rear=(self.rear+1)%MaxSize self.data[self.rear]=e def pop(self): #出队元素 assert not self.empty() #检测队空 self.front=(self.front+1)%MaxSize return self.data[self.front] def gethead(self): #取队头元素 assert not self.empty() #检测队空 head=(self.front+1)%MaxSize #求队头元素的位置 return self.data[head] def size(self): return ((self.rear-self.front+MaxSize)%MaxSize) def pushk(qu, k, e): # 进队第k个元素e n = qu.size() if k < 1 or k > n + 1: return False # 参数k错误返回False if k <= n: for i in range(1, n + 1): # 循环处理队中所有元素 if i == k: qu.push(e) # 将e元素进队到第k个位置 x = qu.pop() # 出队元素x qu.push(x) # 进队元素x else: qu.push(e) # k=n+1时直接进队e return True def popk(qu,k): #出队第k个元素 n=qu.size() assert k>=1 and k<=n #检测参数k错误 for i in range(1,n+1): #循环处理队中所有元素 x=qu.pop() #出队元素x if i!=k: qu.push(x) #将非第k个元素进队 else: m=x #取第k个出队的元素 return m if __name__ == '__main__': qu = CSqQueue() n=int(input("请输入元素个数:")) print("请依次输入每个元素:") for i in range(n): x = input() qu.push(x) # 将输入的元素依次入队 print("元素个数=%d" % (qu.size())) k=int(input("请输入进队元素的序号:")) x = int(input("请输入进队元素:")) pushk(qu,k,x) c=int(input("请输入取出元素的序号:")) popk(qu,c) while not qu.empty(): print(qu.pop(), end=' ') print() x = int(input("请输入入队元素:")) qu.push(x)
时间: 2023-06-02 14:06:55 浏览: 87
性能飙升:掌握Python中的代码优化技巧
以下是在Python环境下根据所提供的代码编写队列主函数,队列的最大大小为100:
```
class Queue:
def __init__(self):
self.items = []
self.max_size = 100
def is_empty(self):
return self.items == []
def enqueue(self, item):
if len(self.items) < self.max_size:
self.items.insert(0,item)
else:
print("队列已满!")
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
```
在这个主函数中,我们定义了一个Queue类,其中包含了以下方法:
1. `__init__`方法:类的构造函数,用于初始化队列项和最大队列大小属性。
2. `is_empty`方法:检查队列是否为空,如果为空则返回True,否则返回False。
3. `enqueue`方法:将元素添加到队列的末尾,如果队列已满则打印"队列已满"的消息。
4. `dequeue`方法:从队列的前面删除并返回元素。
5. `size`方法:返回队列中元素的数量。
阅读全文