【笔记】数据结构与算法
前言
数据结构与算法概念
什么是数据结构
- 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科
数据结构的分类
逻辑结构
集合结构
- 集合结构中数据元素出了属于同一个集合外,他们之间没有任何其他的关系
线性结构
- 线性结构中的数据元素之间存在一对一的关系
树形结构
- 树形结构中的数据元素之间存在一对多的层次关系
图形结构
- 图形结构的数据元素是多对多的关系
物理结构
- 逻辑结构在计算机中真正的表达方式
顺序结构
- 数据单元所占用的地址是连续的
优缺点
- 查找操作效率更高
- 修改(增加、删除)操作效率更低
链式结构
- 数据单元可以是连续的,也可以是不连续的
- 通过指针指向下一个元素
优缺点
- 修改(增加、删除)操作效率更高
- 查找操作效率更低
什么是算法
- 算法是指阶梯方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法解决问题的策略机制,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出
数据结构的分类
数据结构在编程中的分类
线性表 - 顺序表
线性表 - 链表 - 单向链表
线性表 - 链表 - 双向链表
线性表 - 栈
线性表 - 队列
符号表
树 - 二叉树
树 - 堆
树 - 平衡树 - 2-3查找树
树 - 平衡树 - 红黑树
树 - B树
树 - B+树
图 - 有向图
图 - 加权无向图
图 - 最小生成树
图 - 加权有向图