当前位置:   article > 正文

python算法与数据结构(6)队列,单链表实现队列_python 队列中元素依次出队

python 队列中元素依次出队

队列:先进先出。 FIFO结构。5,4,3,2,1
如何FIFO呢?
已经学了array(数组) ,list(列表), linkedlist(单链表), DLL(双链表)
队列实现需要push(入队)和从队首pop(出队)
list 插入时间复杂度较高,
单链表:popleft和append都是O(1)。可以使用。
双链表:也可以用,但是实现相对复杂。
这里使用单链表实现队列:
方便查看直接把04章的单链表代码拷贝过来。

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


class LinkedList(object):
    def __init__(self, maxsize=None):
        self.maxsize = maxsize
        self.root = Node()
        self.length = 0
        self.tailnode = None

    def __len__(self):
        return self.length

    def append(self, value):
        if self.maxsize is not None and len(self) > self.maxsize:
            return Exception("Full")
        node = Node(value)
        tailnode = self.tailnode
        if tailnode is None:  # 第一个插入的值作为root入口的下一个节点。
            self.root.next = node
        else:
            tailnode.next
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/803033
推荐阅读
相关标签
  

闽ICP备14008679号