如何配置Kaneo GitHub集成:自动同步Issue与Pull Request
2026/8/1 19:33:26
| 方法 | 说明 |
|---|---|
| size() | 返回队列中元素个数 |
| is_empty() | 判断队列是否为空 |
| push(item) | 向队尾添加元素 |
| pop() | 从队首取出元素 |
| peek() | 访问队首元素 |
classEmptyQueueError(Exception):passclassNode:def__init__(self,item,next=None):self.item=item self.next=nextclassQueue:def__init__(self):self.__head=Noneself.__size=0@propertydefsize(self):returnself.__sizedefis_empty(self):returnself.__size==0# 定义:以单链表的头为队头,以单链表的尾为队尾defpush(self,item):# 第一步:创建新结点new_node=Node(item)# 第二步:添加元素# 2.1 队列为空ifself.__head==None:self.__head=new_nodeelse:# 2.2 队列不为空# 查询队尾node=self.__headwhilenode.next!=None:node=node.next# 循环出来,node.next = None,此时node为队列的最后一个结点node.next=new_node# 第三步:个数+1self.__size+=1defpop(self):ifself.is_empty():raiseEmptyQueueError("队列已空")item=self.__head.item self.__head=self.__head.nextself.__size-=1returnitem# 队头出列defpeek(self):ifself.is_empty():raiseEmptyQueueError("队列已空!")returnself.__head.itemdef__str__(self):result=""# 遍历node=self.__headwhilenodeisnotNone:result+=str(node.item)result+="->"ifnode.nextelse""node=node.nextreturn'队头:'+result+':队尾'if__name__=='__main__':q=Queue()print("初始size:",q.size)print("是否为空:",q.is_empty())q.push('a')q.push('b')q.push('c')print('q',q)try:print('peek:',q.peek())q.pop()print('q',q)print('peek:',q.peek())q.pop()print('q',q)print('peek:',q.peek())q.pop()print('q',q)print('peek:',q.peek())q.pop()print('q',q)q.pop()print('q',q)q.peek()exceptEmptyQueueErrorase:print(e)