python用链表实现队列

本文介绍了如何使用Python数据结构中的链表来实现队列操作,包括入队、出队等基本功能,详细阐述了链表节点的创建和队列的管理原理。
摘要由CSDN通过智能技术生成
class LNode:
    """节点的类"""
    def __init__(self,x):
        self.data = x
        self.next = None

class MyQueue:
    """用链表实现队列,因为列表尾部出列时间复杂度高,所以一般就是在尾部加个指针self.pEnd实现尾入头出(个人理解)"""
    def __init__(self):
        self.pHead = None
        self.pEnd = None#把这个想象成一个指针,用于尾部入列
    #判断列表是否为空
    def isEmpty(self):
        return not self.pHead
    #计算列表的长度
    def size(self):
        s = 0
        p = self.pHead
        while p != None:
            p = p.next
            s += 1
        return s
    #入队列,把元素压入队尾
    def enQueue(self,e):
        p = LNode(e)
        if self.pHead is None:
            self.pHead = self.pEnd =p #这里这么写跟self.pHead = p   self.pEnd = p 同价

        else:
            self.pEnd.next = p
            self.pEnd = p
    #出队列,把元素从队首弹出
    def deQueue(self):
        if self.pHead is None:
            print("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值