zoukankan      html  css  js  c++  java
  • python(3)-队列

    队列分为双向队列和单向队列:

    对于双向队列,同样需要先import collections

    创建队列

    >>> import collections
    >>> d = collections.deque()
    >>> type(d)
    <class 'collections.deque'>

    向队列中添加元素

    >>> d.appendleft("1")      #从左边添加
    >>> print(d)
    deque(['1'])
    >>> d.append('2')          #从右边添加
    >>> print(d)
    deque(['1', '2'])

    双向队列中的方法

    >>> d.append('2')
    >>> print(d)
    deque(['1', '2'])
    >>> d.append('2')
    >>> print(d)
    deque(['1', '2', '2'])      #计数
    >>> d.count('2')
    
    >>> d.extend(['33','44'])       #扩展
    >>> print(d)
    deque(['1', '2', '2', '33', '44'])
    
    >>> d.extendleft(['11','22'])      #从左边扩展
    >>> print(d)
    deque(['22', '11', '1', '2', '2', '33', '44'])     #注意顺序,队列是先进先出的
    
    >>> d.pop()      #从右边取数据
    '44'
    >>> d.pop()
    '33'
    >>>
    
    >>> d.popleft()     #从左边取数据
    '22'
    >>> d.popleft()
    '11'
    >>>
    
    >>> print(d)
    deque(['1', '2', '2'])
    >>> d.remove("2")     #从队列中删除数据
    >>> print(d)
    deque(['1', '2'])
    
    >>> d.append(["33","44"])    #向队列中添加列表
    >>> print(d)
    deque(['1', '2', ['33', '44']]) 
    >>> d.rotate(1)           #把最后一个放到前面
    >>> print(d)
    deque([['33', '44'], '1', '2'])
    
    >>> d.rotate(2)           #把最后两个放到前面
    >>> print(d)
    deque(['1', '2', ['33', '44']])
    
    >>> d.reverse()        #反转
    >>> print(d)
    deque([['33', '44'], '2', '1'])

     

    单向队列:

    单向队列需要import queue

    >>> import queue
    >>> q = queue.Queue()    #创建单向队列
    >>> type(q)
    <class 'queue.Queue'>

    单向队列的方法

    >>> q.put("a")                #往队列中放元素
    >>> q.put(["b","c"])
    >>> print(q)
    <queue.Queue object at 0x000000000309DE80>
    
    >>> q.qsize()             #队列中元素的个数
    2 
    
    >>> q.get()     #往外拿元素,先进先出,当元素被拿完时,队列会处于等待状态,直到有元素被put
    'a'
    >>> q.get()
    ['b', 'c']
    >>> q.get()
    
    >>> q = queue.Queue()
    >>> q.empty()                 #队列是否为空
    True 
    
    >>> q = queue.Queue(maxsize = 3)    #定义队列的最大长度
    >>> q.put(1)
    >>> q.put(2)
    >>> q.put(3)
    >>> q.put(4)     #当put的元素超出最大长度时队列会处于等待状态,直到空出数据单元
  • 相关阅读:
    关于C的struct结构的几个常见疑问。
    NAT类型
    Linux oops stack 分析
    关于pci_dev的定义
    还是动态添加控件 触发事件
    页面编译模型
    MDX 销售额与上月比较
    C语言的词法语法分析lex&yacc 经典收藏
    interrupt storm
    js获取mac地址
  • 原文地址:https://www.cnblogs.com/huangxm/p/5215583.html
Copyright © 2011-2022 走看看