承接上篇文章,python实现队列(出队、入队、查看队列元素)

本文介绍了使用Python实现两种队列数据结构:基于列表的简单队列和自定义链表节点的队列。详细展示了入队、出队、判断队列状态和长度等功能的实现,并通过实例演示了队列操作。此外,还讨论了使用原生方法与自定义数据结构对编程质量的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为这几天工作也挺忙的,一直忘记把自学第三天的内容给发布,这也离他的上篇发布有5天时间了,我今天也就简单完善的发布一下吧!!!
至于我一个为啥又在自学python呢???
首先声明,我也不是为了卷,什么卷天卷地卷死你了,,,
想了解具体原因呢???请移驾上篇!!!
class Queue(object):
    def __init__(self):               #初始化空队列
        self.list = []

    def push(self,item):             #入队
        self.list.append(item)       #尾进
        # self.list.insert(0,item)   #头进

    def pop(self):                   #出队
        # return self.list.pop(0)    #头出
         return self.list.pop()      #尾出

    def is_empty(self):              # 判断是否为空
        return self.list == []

    def size(self):                  # 判断长度
        return len(self.list)

    def __str__(self):               #遍历所有队列当中的队员
        return "队员(%r)" % self.list

s = Queue()
print("入队前为空???:",s.is_empty())
s.push("西施")
s.push("貂蝉")
s.push("昭君")
s.push("玉环")
print('入队之后的长度:', s.size())
print(s.pop())
print('出队之后的长度:', s.size())
print("入队后为空???:",s.is_empty())
print(s)

还是老样子,使用最便捷的方式,代码也不难理解,(也是boss最不认同的方式,说这样习惯用原生的方法会影响代码自己编程的质量,代码越写越差什么的,咱也怼不过,只能服从去从数据的结构入手,那么自定义链表节点的方式它来了)


class Node(object): ##节点,包括两个属性,一个是节点的值,一个是节点的下一个指向

    def __init__(self,value):

        self.value = value  #赋值给节点

        self.next = None    #节点的下一个指向

class Queue:  #初始化队列,默认队列大小6,    先入先出
    def __init__(self):
        self.first = None
        self.last = None

    def put(self,element):         #先入队
        packNode = Node(element)
        if self.first == None:
            self.first = packNode
            self.last = packNode
        else:
            self.last.next = packNode
            self.last = packNode

    def get(self):           #先出队
        if self.first == None:
            return None
        elif self.first == self.last:
            tmp = self.first.value
            self.first, self.last = self.first.next, self.first.next
            return tmp
        else:
            tmp = self.first.value
            self.first = self.first.next
            return tmp

    def empty(self):
        self.list=[]


s = Queue()
el = ["西施","貂蝉","昭君","玉环"]
for n in el:
    s.put(n)
print("队列首元素:",s.first.value)
print("队列尾元素:",s.last.value)
# print("当前队列的元素:",s.list)
print("正在移出队列的是:",s.get())
# print("当前队列的元素:",s.list)
不知各位看的咋样???
我也不再过多啰嗦了,自我感觉我写的知识挺全乎的,
应该!
大概!!
可能不难理解吧!!!

上篇:python实现栈
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值