echarts 自定义指令 golang wcf playframework air 后台管理模板下载 十大erp系统 pmp视频教程下载 js获取焦点事件 mac上传文件到linux 配置tomcat环境变量 js原生点击事件 python相对路径怎么写 python中不等于 python打开文件夹 java编程基础 java发邮件 java的random java中的数据结构 java查看数据类型 java中string的方法 磁盘分区软件 groupby 路由器辐射大吗 相关软件 页面刷新 小洛快跑 pr调整图层 cad自动保存位置 js字符串比较 头条视频解析 梦想世界科举答案 炫舞爱的惊喜 图片转pdf软件 Linux进程查看 聊呗电脑版 pr怎么加字幕特效 mysql数据库迁移 英伟达显示设置不可用
当前位置: 首页 > 学习教程  > 编程语言

Python重现数据结构--队列的实现(链表)

2020/10/8 18:14:37 文章标签:

简介 队列 (queue) 是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操…

简介

队列 (queue) 是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
在这里插入图片描述

队列的介绍

队列符合先进先出[FIFO]的原则。因为要排队的第一个项目,最终将是第一个要出列的项目,如在现实生活中的队列,先来的站在队列前面,后来的就只能站在队列后面啦。

队列的演示
在这里插入图片描述

实现

#File name :Queue
#Author:龙文汉
#Version:1.0
#Date:20.10.8
#Description:队列的基本实现

class Node(object):
    def __init__(self,data):
        self.data = data
        self.next = None

class Queue(object):
    def __init__(self):
        self.head = Node(None)
        self.tail = self.head
        self.length = 0

    def Is_Empty(self):
        return self.length==0

    def In_queue(self,element):
        self.tail.next = element
        self.tail = element
        self.length += 1

    def Out_Queue(self):
        if self.length == 0:
            raise IndexError("This is Empty queue!")
        self.head = self.head.next
        self.data = None

    def Seek(self,element):
        temple = self.head.next
        for i in range(0,self.length):
            if temple.data == element.data:
                print(element.data,"'s index is ",i+1)
                return
            else:
                temple = temple.next

    def Change(self,old_element,new_element):
        temple = self.head.next
        while(temple):
            if temple.data == old_element.data:
                temple.data = new_element.data
                return
            else:
                temple = temple.next

    def Print(self):
        temple = self.head.next
        while(temple):
            print(temple.data)
            temple = temple.next

    def Get_length(self):
        return self.length

if __name__ == "__main__":
    queue_a = Queue();
    print(queue_a.Is_Empty(),queue_a.Get_length())
    queue_a.In_queue(Node(23))
    queue_a.In_queue(Node(100))
    queue_a.Print()
    print("")
    queue_a.Change(Node(23), Node(3333))
    queue_a.Print()
    print("")
    queue_a.Seek(Node(100))
    queue_a.Out_Queue()
    queue_a.Print()

本文链接: http://www.dtmao.cc/news_show_250021.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?