数据结构yyds
学习一直本着一个目标,先知道这玩意是干啥的,对自己有啥用,然后再学习。
毫无疑问数据结构,可不就是yyds,进大厂的投名状!
文章目标:通过直白的方式对数据结构有一个认知,方便日后的具体学习,看完这篇你会觉得对数据结构的学习有着莫大的信心。
从今天2021年7.26日起每天坚持学习数据结构,结合以前大学知识综合学习.
数据结构
-
what is:就是存储数据的集合,每个集合有不同的特点。如数组地址连续适合查询,链表元素间通指针连接适合新增。
-
分类:系统的可以分为两大类。逻辑结构(即大学书本中所学的理论知识。如集合、线性、树形、图形) and 物理结构(理论的具体实现,如顺序存储结构Java中的ArrayList数组、链式存储结构LinkedList)。
OK了解了大的分类请往下看其具体划分,有助于理解其实际场景。
逻辑结构:
- 集合结构:数据间除了属于同一个集合容器外,其之间唯有任何联系。
- 线性结构:数据之间存在一对一的关系,通过指针链接起来。
- 树形结构:数据元素之间存在上下层级一对多的关系,同层元素间无关系。
- 图形结构:数据元素之间为多对多的关系。
小二,上图------>
物理结构: - 顺序存储结构:
将数据元素存放到内存连续的空间中,如数组。 - 链式存储结构:
数据元素存放空间之间可以不连续,通过指针来串联其数据之间的关系。
算法
上篇提及数据结构是有着一定特性的存储数据的集合
那么what is 算法?
大白话解释:即解数学题的思路,一种思路即一种算法。根据所用时间,所耗步骤来评判算法的好坏。
所用时间—>算法运行时间
所耗步骤---->算法运行所占空间
辣么对应到算法中就是:根据指定题目的条件,对一些基础数据进行一定的运算,得到最终需要的结果。
数据结构充当的作用我理解就两点:
- 充当存放算法基础数据的容器
- 根据不同的数据结构的不同特性,来帮助快速解题。