数据结构与算法--常用数据结构与高级数据结构

常用的数据结构

数组

优点:
构建一个数组非常简单
根据小标查找的复杂度是o(1)
缺点:
构建时必须分配一段连续的空间
查询某个元素是否存在时要遍历整个数组,复杂度为o(n)
删除和添加某个元素,时间复杂度为o(n)

链表

优点:
灵活的分配内存空间
能在o(1)的时间复杂度内删除或者添加元素
缺点:
查询元素需要o(n)的时间

特点:
后进先出

队列

特点:
先进先出
常用场景:
广度优先搜索

树的共性:
结构直观
通过树问题来考察 递归算法
面试中常见的树的形状:
普通二叉树
平衡二叉树
完全二叉树
二叉搜索树
四叉树
多叉树
遍历:
前序遍历
中序遍历
后序遍历

高级数据结构

优先队列

与普通队列的区别:
保证每次取出的元素是队列中优先级别最高的
优先级可自定义
常用的场景:
从杂乱无章的数据中按一定顺序(或者优先级)筛选数据

基本知识点:
阶、度
树、森林、环
有向图、无相图、完全有向图、完全无向图
连通图、连通分量
图的存储和表达方式:邻接矩阵和邻接链表
必须熟练掌握的知识点
图的存储和表达方式:邻接矩阵 邻接链表
图的遍历:深度优先 广度优先
二部图的检测、树的检测、环的检测、有向图、无向图
拓扑排序
联合-查找算法
最短路径

前缀树

也称字典树,广泛运用在字典查找中
重要性质:
children:数组或者集合,罗列出每个分支当中包含的所有字符
isEnd:布尔值,表示该节点是否为某字符串的结尾
最基本的操作:
创建
搜索

线段树

一种按照二叉树形式存储的数据结构,每个节点保存的都是数组里某一段的总和

树状数组

基本特征:
利用数组来表示多叉树的结构
优先队列是用数组来表示完全二叉树,而树状数组是多叉树

发布了4 篇原创文章 · 获赞 3 · 访问量 911

猜你喜欢

转载自blog.csdn.net/weixin_44017425/article/details/104995899