您的位置:首页 > 理论基础 > 数据结构算法

[读书笔记]-大话数据结构-4-栈与队列(二)-队列

2017-11-08 19:00 288 查看

队列的定义

队列(queue)是只允许在一端进行拆入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First In First Out)的线性表,简称FIFO允许插入的一段称为队尾,允许删除的一端称为队头

class Node(object):   #定义链表节点
def __init__(self,data=None):
self.data=data
self.next=None

class LinkQueue(object):
def __init__(self):  #生成一个空的链队列
self.front=Node(0)   #头节点,保存元素的个数
self.rear=self.front

def QueueLength(self):  #返回队列的长度
return self.count

def EnQueue(self,e):  #将e插入队列
p=Node(e)  #待拆入节点
self.rear.next=p  #尾节点下一个节点指向p
self.rear=p     #尾指针移到p
self.front.data+=1  #节点个数+1

def DeQueue(self):
if self.rear==self.front:return None #如果链表为空
p=self.front.next  #待删除
e=p.data
self.front.next=p.next  #头结点的下一个节点直接指向p的下个节点
if self.rear==p:  #如果删除的是尾节点
self.rear=self.front  #维指针指向头节点
self.front.data-=1
return e

def ClearQueue(*Q):#将队列清空
self.front=Node(0)
self.rear=self.front

def QueueEmpty(self):#若队列Q为空,返回true,否则返回false
return self.front==self.rear

def GetHead(self): #若队列Q存在且非空,用e返回Q的队头元素
if self.front.next==None:return None
else: return self.front.next.data


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: