7 class Node(object):
8 def __init__(self,data):
9 self.data = data
10 self.next = None
11
12 class linkqueue(object):
13 def __init__(self):
14 self.front = None
15 self.rear = None
16 self.count = 0
17 def isEmpty(self):
18 return self.count == 0
19 def clear(self):
20 self.front = self.rear = None
21 self.count = 0
22 def insert(self,item):
23 node = Node(item)
24 if self.isEmpty():
25 self.front = self.rear = node
26 self.count += 1
27 elif self.count == 1:
28 self.front.next = node
29 self.rear = node
30 self.count += 1
31 else:
32 self.rear.next = node
33 self.rear = node
34 self.count += 1
35 def length(self):
36 return self.count
37 def delitem(self):
38 if self.isEmpty():
39 raise Exception("队列为空")
40 elif self.count == 1:
41 self.rear.next = None
42 self.front = self.rear
43 self.rear = None
44 self.count -= 1
45 else:
46 tempnode = self.front
47 self.front = tempnode.next
48 self.count -= 1
49 def display(self):
50 if self.front == None:
51 print("None")
52 tempnode = self.front
53 while tempnode is not None:
54 print(tempnode.data,end = " ")
55 tempnode = tempnode.next
56 print()
57
58 if __name__ == "__main__":
59 linkqueue1 = linkqueue()
60 print(linkqueue1.length())
61 linkqueue1.insert(1)
62 linkqueue1.insert(2)
63 linkqueue1.insert(3)
64 linkqueue1.insert(4)
65 linkqueue1.insert(5)
66 linkqueue1.insert(6)
67 print(linkqueue1.length())
68 linkqueue1.display()
69 linkqueue1.delitem()
70 linkqueue1.display()
71 linkqueue1.clear()
72 linkqueue1.display()
73
74

运行结果

0
6

1 2 3 4 5 6  
2 3 4 5 6  
None

该代码中没有关于队列的查找和元素值修改的方法,大家可以参照代码进行添加,代码逻辑也相对来说较为简单

python-链队列的实现的更多相关文章

  1. javascript实现数据结构与算法系列:队列 -- 链队列和循环队列实现及示例

    1 队列的基本概念 队列(Queue):也是运算受限的线性表.是一种先进先出(First In First Out ,简称FIFO)的线性表.只允许在表的一端进行插入,而在另一端进行删除. 队首(fr ...

  2. python消息队列snakemq使用总结

    Python 消息队列snakemq总结 最近学习消息总线zeromq,在网上搜了python实现的消息总线模块,意外发现有个消息队列snakemq,于是拿来研究一下,感觉还是很不错的,入手简单使用也 ...

  3. java与数据结构(8)---java实现链队列

    链队列 实际上就是单链表,只是规定了删除在队头进行,添加在队尾进行. 链队列代码结构 package list.queue; public interface Queuable<T>; p ...

  4. python RabbitMQ队列使用(入门篇)

    ---恢复内容开始--- python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种que ...

  5. 链队列之C++实现

    链队列时建立在单链表的基础之上的.由于是动态分配节点内存,所以无需判满. 链队列的形式如下: 1.队列空 2.队列存在数据 下面介绍下C++实现的链队列,VC6下调试通过. 1.文件组织 2.lq.h ...

  6. C语言实现链队列的初始化&进队&出队

    /*链表实现队列的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typed ...

  7. c/c++链队列

    链队列 链队列就是简化了的单链表 nodequeue.h #ifndef __NODEQUEUE__ #define __NODEQUEUE__ #include <stdio.h> #i ...

  8. Python之队列Queue

    今天我们来了解一下python的队列(Queue) queue is especiall useful in threaded programming when information must be ...

  9. python链家网高并发异步爬虫asyncio+aiohttp+aiomysql异步存入数据

    python链家网二手房异步IO爬虫,使用asyncio.aiohttp和aiomysql 很多小伙伴初学python时都会学习到爬虫,刚入门时会使用requests.urllib这些同步的库进行单线 ...

  10. 【Java】 大话数据结构(7) 循环队列和链队列

    本文根据<大话数据结构>一书,实现了Java版的循环队列.链队列. 队列:只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 1.循环队列 队列的顺序储存结构:用数组存储队列,引入 ...

随机推荐

  1. 关于优先队列的总结II

    优先队列这个数据结构还是很有用的,可以帮我们解决很多棘手的排序的问题,所以再来细细看一下, priority_queue<Type, Container, Functional> Type ...

  2. 这些不可不知的JVM知识,我都用思维导图整理好了

    JVM是面试中必问的部分,本文通过思维导图以面向面试的角度整理JVM中不可不知的知识. 先上图: 1.JVM基本概念 1.1.JVM是什么 JVM 的全称是 「Java Virtual Machine ...

  3. VSCode Plugin & Auto File Header Comments Generator

    VSCode Plugin & Auto File Header Comments Generator Xcode SwiftUI // // ContentView.swift // Mem ...

  4. learning all in one

    learning learning all in one https://github.com/xgqfrms/learning/tree/gh-pages/GraphQL https://githu ...

  5. Dart & import show & import hide & import as & part & part of

    Dart & import show & import hide & import as & part & part of // 部分导入,即仅仅导入 dart ...

  6. py django

    创建项目 $ django-admin startproject server 运行项目 $ cd server $ python manage.py runserver 创建一个模块 $ pytho ...

  7. perl 打印目录结构

    更多 #!/usr/bin/perl # 递归打印目录结构 use v5.26; use strict; use utf8; use autodie; use warnings; use Encode ...

  8. HTTPS原理解析

    HTTPS 一些概念 http 概述 HTTP是一个客户端(用户)和服务端(网站)之间请求和应答的标准,通常使用TCP协议.其本身位于TCP/IP协议族的应用层. 特点 - 客户端&服务器 - ...

  9. 这一篇TCP总结请收下

    前言 很高兴遇见你~ TCP这些东西,基本每个程序猿都或多或少是掌握的了.虽然感觉在实际开发中没有什么用武之处,但,面试他要问啊 而最近大家伙过完年,也都在准备春招,我也一样.阅读了一些okHttp源 ...

  10. 答不上的JUC笔试题

    1:有一个总任务A,分解为子任务A1 A2 A3 ...,任何一个子任务失败后要快速取消所有任务,请写程序模拟. 「请寻求最优解,不要只是粗暴wait()」 本题解题思路:Fork/Join 通常使用 ...