Python list列表实现栈和队列
队列和栈是两种数据结构,其内部都是按照固定顺序来存放变量的,二者的区别在于对数据的存取顺序:
1、队列是,先存入的数据最先取出,即“先进先出”。
2、栈是,最后存入的数据最先取出,即“后进先出”。
考虑到 list 类型数据本身的存放就是有顺序的,而且内部元素又可以是各不相同的类型,非常适合用于队列和栈的实现。本节将演示如何使用 list 类型变量来实现队列和栈。
Python list实现队列
使用 list 列表模拟队列功能的实现方法是,定义一个 list 变量,存入数据时使用 insert() 方法,设置其第一个参数为 0,即表示每次都从最前面插入数据;读取数据时,使用 pop() 方法,即将队列的最后一个元素弹出。
如此 list 列表中数据的存取顺序就符合“先进先出”的特点。实现代码如下:
#定义一个空列表,当做队列 queue = [] #向列表中插入元素 queue.insert(0,1) queue.insert(0,2) queue.insert(0,"hello") print(queue) print("取一个元素:",queue.pop()) print("取一个元素:",queue.pop()) print("取一个元素:",queue.pop())
运行结果:
['hello', 2, 1] 取一个元素: 1 取一个元素: 2 取一个元素: hello
Python list实现栈
使用 list 列表模拟栈功能的实现方法是,使用 append() 方法存入数据;使用 pop() 方法读取数据。
append() 方法向 list 中存入数据时,每次都在最后面添加数据,这和前面程序中的 insert() 方法正好相反。
#定义一个空 list 当做栈 stack = [] stack.append(1) stack.append(2) stack.append("hello") print(stack) print("取一个元素:",stack.pop()) print("取一个元素:",stack.pop()) print("取一个元素:",stack.pop())
运行结果:
[1, 2, 'hello'] 取一个元素: hello 取一个元素: 2 取一个元素: 1