队列和栈

队列

队列(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

你可能感兴趣的:(队列和栈)