1.1 什么是数据结构?

官方解释:
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科
大白话:
数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据

1.2 数据结构分类

传统上 , 我们可以把数据结构分为 逻辑结构 和 物理结构 两大类。
逻辑结构分类:
a.集合结构 : 集合机构中数据元素除了属于同一个集合外,他们之间没有任何其他关系
b.线形结构 : 线性结构中数据元素之间存在一对一的关系
1-2-3-4-5-6-7-8
C.树形结构 : 数据元素存在一对多的层次关系
d.图形结构 : 图形结构的数据元素是多对多的关系
物理结构分类
逻辑结构在计算机中真正表示方式(又称为映像)称为物理结构 也可以叫做存储结构 常见的物理结构有顺序存储结构、链式存储结构。
顺序存储结构:
把数据元素放到地址连续的存储单元里面, 数据间的逻辑关系和物理关系一致。例如数组
数组 可以用索引下标取值 但是 插入元素 或者 删除元素 影响后面数 影响性能
链式存储结构:
把数据元素放在任意存储单元里面,存储单元可以是连续也可以是不连续的。 此时,数据元素之间不能反映元素间的逻辑关系,因此在链式存储结构中引进了 指针 存放数据元素地址, 通过地址可以找到相关联数据元素的位置。

重点

复杂度分析: 时间复杂度,空间复杂度

10 个数据结构:

数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;

10 个算法:

递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

算法图谱

算法图谱.webp

Github 源码地址:

https://github.com/wangzheng0822/algo.git