承接上篇文章,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实现栈
Python队列(queue)可以通过入队(push)和出队(pop)操作来实现元素的添加和删除。首先,我们需要创建一个队列对象,并初始化为空队列。然后,我们可以使用push方法将元素添加到队列的末尾,使用pop方法从队列的头部删除元素。另外,我们还可以使用is_empty方法来判断队列是否为空,使用size方法来获取队列的长度。下面是一个示例代码: ```python class Queue(object): def __init__(self): self.list = [] def push(self, item): self.list.append(item) def pop(self): return self.list.pop(0) def is_empty(self): return self.list == [] def size(self): return len(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()) ``` 这段代码演示了如何使用自定义的Queue类实现队列入队出队操作。其中,push方法用于将元素添加到队列的末尾,pop方法用于从队列的头部删除元素。is_empty方法用于判断队列是否为空,size方法用于获取队列的长度。在这个示例中,我们先将一些元素添加到队列中,然后逐个删除并打印出队元素。 希望这个例子能够帮助你理解如何在Python中使用队列进行入队出队操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值