栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

因为这几天工作也挺忙的,一直忘记把自学第三天的内容给发布,这也离他的上篇发布有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实现栈
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/741431.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号