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()

列表

无序列表抽象数据类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容