python队列实现_Python 数据结构之队列的实现

3a2c5c47719654b2eb3ed26ac95e70d8.png

Python 队列

Queue 队列是一种先进先出(FIFO)的数据类型, 新的元素通过 入队 的方式添加进 Queue 的末尾, 出队 就是从 Queue 的头部删除元素.

用列表来做 Queue:

queue = [] # 初始化一个列表数据类型对象, 作为一个队列

def enQ(): # 定义一个入栈方法

queue.append(raw_input('Enter New String: ').strip())

# 提示输入一个入队的 String 对象, 调用 Str.strip() 保证输入的 String 值不包含多余的空格

def deQ(): # 定义一个出队方法

if len(queue) == 0:

print "Cannot pop from an empty queue!"

else:

print 'Remove [', `queue.pop(0)`, ']'

# 使用反单引号(` `)来代替 repr(), 把 String 的值用引号扩起来, 而不仅显示 String 的值

# queue.pop(0) 总是将在队列中最前面的元素弹出

def viewQ(): # 定义一个显示队列中的内容的方法

print queue

CMDs = {'u':enQ, 'o':deQ, 'v':viewQ}

# 定义一个 Dict 类型对象, 将字符映射到相应的 function .可以通过输入字符来执行相应的操作

def showmenu(): # 定义一个操作菜单提示方法

pr = """

(E)nqueue

(D)equeue

(V)iew

(Q)uit

Enter choice: """

while True:

while True:

try:

choice = raw_input(pr).strip()[0].lower()

# Str.strip() 去除 String 对象前后的多余空格

# Str.lower() 将多有输入转化为小写, 便于后期的统一判断

# 输入 ^D(EOF, 产生一个 EOFError 异常)

# 输入 ^C(中断退出, 产生一个 keyboardInterrupt 异常)

except (EOFError, KeyboardInterrupt, IndexError):

choice = 'q'

print '\nYou picked: [%s]' % choice

if choice not in 'uovq':

print 'Invalid option, try again'

else:

break

if choice == 'q':

break

CMDs[choice]()

# 获取 Dict 中字符对应的 functionName, 实现函数调用

if __name__ == '__main__':

showmenu()

队列和堆栈的实现方式很相似, 区别在于队列总是先弹出第一个元素而堆栈总是先弹出最后一个元素.

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值