​前段时间打算重新温习一下数据结构,整理一些新的内容,在网上搜到了很多受用的精彩博客,可以说受益匪浅。“前人栽树,后人乘凉”已然石锤了。

先亮出第一张思维导图:

数据结构思维导图-1

一.数据结构的基本概念

数据结构定义:数据结构是一种存储和组织数据的方式,以便于访问和修改。数据结构包括数据的逻辑结构、数据的存储结构以及数据的运算,即按照某种逻辑关系组织起来的一批数据,按一定的映射方式把它存放在计算机的存储器中,并在这些数据上定义了一个运算的集合。

数据的逻辑结构:反映数据元素之间的关系。有集合、线性结构、树型结构、图型结构。

数据的存储结构:逻辑结构在计算机中的存储映象,是逻辑结构在计算机中的实现,它包括数据元素的表示和元素之间关系的表示。有顺序存储结构(数组)、链式存储结构(链表)、索引存储结构、散列存储结构等。

数据的运算:对数据施加的操作,通过算法描述。

二.算法的基本概念

算法定义:

计算机求解一个问题所需的一系列步骤

算法的基本特性:

  • 输入:一个算法有0个或者多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身给出了初始条件;

  • 输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;

  • 有穷性:算法必须能在执行有限个步骤之后终止;

  • 确切性:算法的每一步骤必须有确切的定义;

  • 可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成。

算法设计的要求:

  • 正确性:设计的算法能满足具体问题的需求,并且任何合法的输入都会得出正确的输出;

  • 可读性:是指算法被写好之后,该算法理解的难易程度,一个算法可读性的好坏十分重要。如果一个算法比较抽象且难以理解,那么这个算法就不利于交流和推广使用,对于修改、扩展、维护来说都十分不方便,因此,在追求高效的同时,也应是算法尽量简明易懂。

  • 健壮性:当输入数据非法时,算法也会做出相应的判断,而不会因为输入的错误而造成瘫痪。

  • 时间效率高(时间复杂度)和需要的存储空间少(空间复杂度)

时间复杂度:程序大概的执行次数(不是执行时间)。一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度

空间复杂度:该算法所耗费的存储空间,它也是问题规模n的函数。其是对一个算法在运行过程中临时占用存储空间大小的量度。一个算法在计算机存储器上所占用的存储空间,包括存储算法本身所占用的存储空间,算法的输入输出数据所占用的存储空间和算法在运行过程中临时占用的存储空间这三个方面。

再亮出第二张更加丰富犀利的思维导图(图片有点大,附上百度网盘导图源文件:链接:https://pan.baidu.com/s/1HL6fBTERD1AoIrheEggmhg  提取码:7obo):

数据结构思维导图-2

以上是我整合了一下两篇比较好的博客,希望帮助其他人理清楚数据结构的思路,更快的学习数据结构!

注明:

前边部分导图转载自博客园作者“jianboshi”,地址https://www.cnblogs.com/small-boy/p/8039007.html

后边部分导图内容转载自CSDN作者“Billy12138”,地址https://blog.csdn.net/flowing_wind/article/details/81431354

两张思维导图,让你轻松学习数据结构相关推荐

  1. 一篇文章一张思维导图看懂Android学习最佳路线

    一篇文章一张思维导图看懂Android学习最佳路线 先上一张android开发知识点学习路线图思维导图 Android学习路线从4个阶段来对Android的学习过程做一个全面的分析:Android初级 ...

  2. 补充(二)古典密码两张思维导图速通

    目录 目录 古典密码思维导图 古典密码分析思维导图 唯密文分析古典密码 单表代替密码 棋盘密码 曾公密码 置换密码的代表:斯巴达人的密码棒 古典密码思维导图 古典密码分析思维导图 唯密文分析古典密码 ...

  3. 干货:18 张思维导图,后端技术学习路线长这样!

    来源 |后端技术学堂(ID:lemon10240) 作者 | LemonCoder 头图 | CSDN下载自视觉中国 思来想去,学习方向和路线很重要.比起具体的技术细节,可复制的经验.清晰的学习路线, ...

  4. 嵌套 思维导图_看我怎么用思维导图,来轻松学习JavaScript,值得收藏

    JS的入门到真实项目的实践 js的历史由来js书写的位置js的基本语句js的变量以及变量命名规范数据类型 (面试)运算符循环数组函数作用域预解析完结 前面更新了h5的相关知识,接下来学习js,根据上面 ...

  5. JAVA思维导图学习笔记_8张思维导图,55天学习笔记,帮你入门JavaSE

    学完了Java中的基础语法,也就是JavaSE. 对其做了一个详细的梳理,也便于以后回顾. 其中有些知识点被自己遗漏了,比如正则表达式这些,只能以后找机会补上了. 01前言 对于计算机基础知识的了解. ...

  6. 地理防灾减灾思维导图_17张思维导图,让你轻松学好高中地理必修一

    高中地理必修一是整个高中教学的难点和重点,对于自然地理的学习,大家可能会感觉头疼,因为过于抽象的空间和思维.但这块"硬骨头"必须啃下来,因为必修一的知识,对于后期的学习起到至关重要 ...

  7. 16张思维导图+学习路线图,囊括所有Python基础,可打印

    今天给大家分享的是关于Python基础的14张思维导图,对于大家知识的梳理会有很大的帮助,另外还有两张Python学习路线图,全面系统,让初学者不走弯路.一起来看一看吧! 前面知识回顾!!!!! 程序 ...

  8. GitHub 13.1k | 所有的编程知识,都在这100 张思维导图里了

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 转自:量子位 编程里能用到的所有知识,都在这里了. 这个号称东半球最全最酷的编程学习项目,不仅 ...

  9. 所有的编程语言知识,都包含在这100张思维导图里了丨GitHub 13.1k星

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 编程里能用到的所有知识,都在这里了. 这个号称东半球最全最酷的编程学习项目,不仅容纳了30万字的算法图解题典.100张各种编程语言的思维导图 ...

最新文章

  1. Java实现SSH模式加密
  2. uniapp中搜索输入与频繁点击(防抖节流)
  3. 推荐一个小巧轻便的RSS阅读器
  4. Excel模板导出之动态导出
  5. oracle还原脚本,oracle自动恢复脚本
  6. 自从有了这样的可视化报表,我们社区再没有过疫情(内含福利)
  7. 20170724 Airflow官网资料学习
  8. java excel通用导入类_java excel 文件导入通用接口
  9. HTML5期末大作业:直播网站设计——仿在线媒体歪秀直播官网模板html源码(11个页面) HTML+CSS+JavaScript 期末作业HTML代码...
  10. 计算机主板电杆,电脑主板cpu供电上下管怎样区分替换
  11. 多粒度网络(MGN)的结构设计与技术实现
  12. 如何使用AI绘制网格花卉?
  13. 状态方程simulink仿真_控制系统设计与仿真作业与复习资料
  14. 除了《千与千寻》,宫崎骏漫画的花卉治愈了观众,而花艺学院治愈了你一片温情
  15. 车载网络基础——预备篇
  16. axrue9不显示右侧文件_Axure 9.0基础教程:史上最详细的元件说明,建议你认真看完(一)...
  17. 【FTP】Entering Extended Passive Mode
  18. 软件技术部python培训
  19. win10禁止计算机进入休眠,Win10怎么关闭系统休眠 Win10关闭系统休眠方法
  20. 2022年全国大学生数学建模竞赛赛题B组解题参考+代码

热门文章

  1. SU-8 光刻胶曝光时间的确定
  2. sql语句查询昨天,今天,最近七天,最近三十天数据
  3. 手撕系列:原生python实现汽车牌照识别
  4. Ubuntu20.04安装QQ
  5. idea 出现 Failure to find org.eclipse.m2e:lifecycle-mapping:pom:1.0.0 in http://maven.aliyun.com/
  6. SiTime推出基于MEMS的XCalibur有源谐振器
  7. Pycharm使用Database Navigator连接mysql数据库
  8. 电子烟TPD/烟油TDP检测步骤
  9. 接手别人的代码,死的心有吗?
  10. 【spacesniffer】[太空嗅探器]winC盘满了