18-04-21 python3 算法笔记 002基本数据结构

线性数据结构

栈,队列,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()

列表

无序列表抽象数据类型

你可能感兴趣的:(18-04-21 python3 算法笔记 002基本数据结构)