python实现链队列

python链队列

在写链队列之前,我们需要知道队列元素进出的原则为“先进先出”。

class Node(): #结点类
    def __init__(self,elem):
        self.elem = elem # 数据域,用来存放数据元素
        self.next = None # 指针域,指向下一个结点

class Queue(): # 队列
    def __init__(self): # 队列初始化
        self.head = None # 构造私有头结点
    
    def is_empty(self): # 判空队列
        if self.head == None:
            return True
        else:
            return False
    
    def enqueue(self,elem): # 进队列(正常向后填元素)
        node = Node(elem) # 创建新结点
        if self.is_empty(): # 如果为空,作为第一个结点
            node.next = self.head
            self.head = node
        else:
            top = self.head
            while top.next is not None:
                top = top.next
            top.next = node

    def dequeue(self): # 出队列(头出)
        top = self.head
        self.head = None
        self.head = top.next
        return top.elem

有问题可以留言

你可能感兴趣的:(python实现链队列)