线性数据结构
栈,队列,deques,列表
其元素在数据结构中的位置由它被添加时的顺序决定。
栈
后进先出栈 LIFO last in first out
添加操作与删除操作总发生在同一端(顶端)
栈操作:
Stack() 创建一个空栈,并返回空栈
push(item) 在顶部添加一个新项item,无返回值
pop() 从顶部删除顶部项,返回顶部项
peek() 到达顶部项,无返回值
isEmpty() 测试栈是否为空,返回布尔值
size() 返回栈中项的数量
python实现栈
Stack类定义是从pythonds模块导入的。
pythonds包括以下部分: 基本数据结构类型,树和图。
下载地址
from pythonds.basic.stack import Stack
使用栈解决实际问题:
-
简单括号匹配——圆括号((((()))))
( push
) pop
isEmpty来判定是否匹配 -
括号匹配——{[[([])]]},或者[] () {} ()
-
十进制转二进制
我们用除二法来将十进制转为二进制
第一个余数成为了二进制数的最后一个数
a_stack.push(rem) 将余数按产生的先后顺序推入栈
a_stack.pop(rem) 将栈中存储的余数,按后进先出的顺序推出,并添加到一个字符串中
队列
dequeue抽象数据类型
Queue()
enqueue(item)
dequeue()
isEmpty()
size()
双端队列
deque 首部和尾部 添加与删除操作非限制性
deque 抽象数据类型
Deque()
addFront(item)
addRear(item)
removeFront()
removeRear()
列表
无序列表抽象数据类型
网友评论