美文网首页
队列和栈

队列和栈

作者: 鬼泣_89b6 | 来源:发表于2019-04-04 22:37 被阅读0次

    队列

    队列(queue)是一种具有先进先出特征的线性数据结构,元素的增加只能在一端进行,元素的删除只能在另一端进行。能够增加元素的队列一端称为队尾,可以删除元素的队列一端则称为队首。

    class DUILIE:
        # 队列: 先进后出( 一头进:队尾   一头出:队首)
        li = []
        def cha(self):
            return self.li
    
        def add(self,x):
            return self.li.append(x)    # 队尾进
    
        def qu(self):
            return self.li.pop(0)       # 队首出
    
    d = DUILIE()
    d.add(3)
    d.add(4)
    d.add(5)
    
    print(d.cha())    [3, 4, 5]
    
    print(d.qu())    3
    print(d.qu())    4
    print(d.qu())    5
    

    可以导入双端队列

    from collections import deque
    
    queue = deque(["Eric", "John", "Michael"])
    print  queue
    queue.append("Terry")
    queue.append("Graham")
    print  queue
    print  queue.popleft()
    
    结果
      deque(['Eric', 'John', 'Michael'])
      deque(['Eric', 'John', 'Michael', 'Terry', 'Graham'])
      Eric
    

    栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征

    class ZHAN:
        # 栈: 先进后出
        li = []
        def add(self,x):
            return self.li.append(x)
    
        def qu(self):
            return self.li.pop(-1)
    
        def cha(self):
            return self.li
    
    l = ZHAN()
    l.add(1)
    l.add(2)
    l.add(3)
    
    print l.cha()    [1, 2, 3]
    
    print(l.qu())    3
    print(l.qu())    2
    print(l.qu())    1
    

    相关文章

      网友评论

          本文标题:队列和栈

          本文链接:https://www.haomeiwen.com/subject/lmsciqtx.html