• 数据结构导论(一)


    导读:在看书前,我对这本书的内容,是 这么想的:数据结构,那大概就是关于数据和结构的东西。而讲到数据,估计会说到数据类型,数据定义,数据存储等方面。然后在结构方面,就不是很清晰,没看书之前,用的是打遍天下无敌手的三大结构去猜的数据结构,即:顺序结构、选择结构、循环结构。

    一、导图概述(第一遍)


    结合自己之前对于这本书的猜测,在看完了书之后,我依然将其分为了三个部分:概论、数据和结构。

    首先,在概论中,讲述了一些基础的术语,以及告诉我们为什么要分析数据结构,还有关于整本书的一个安排流程。所以说,这一章其实是最重要的一章,它是一个战略上的宏观指导,看了这一章,才明白所以然和之所以然,才能明白我们学什么和为什么学。尤其是最后有一个关于整本书的安排流程,可以帮助我们对于这本书进行一个初步的大体上的把握。

    其实,是数据部分。这一部分和之前预想的有些出入,在这里并没有介绍预想中的数据类型,但介绍了集中数据结构,但相对于后续的树、图等,我将这一部分划分为数据,因为我认为栈和队列,以及线性表,都是一些简单的数据结构(相对于图和树),可以算是图和树结构的颗粒性数据。值得一说的是:排序。将数据以一定的结构分好之后,按什么顺序去存储,直接影响了其使用性能,所以要提高性能,考虑数据的结构、类型和排序规则是必不可少的事儿。

    最后,就是结构部分,也就是对于简单数据结构的再组合,一种更深一点的结构。而其实查找表是一种运算,也就是我们常说的增、删、改、查这些东西。它是对于我们的数据的一些基本的操作。


    二、导图概述(思考后)

    前面说了一些自己关于这本书看之前的猜测,和看过之后的想法。但其实说的都是数据结构本身这一块知识,那么数据结构,它在整个软件工程过程中,在我们的应用中,又是扮演了什么样的角色呢?


    我认为书中说的栈、队列、线性表,二叉树,图之类,其实还局限于逻辑模型这一层面上。而其存储结构,其实就是由逻辑模型转换为物理模型的一个过程。比如说,在二叉树中,它有其顺序存储结构,这一存储也就是我们在数据库系统原理中学到的关于三范式的应用,这样的存储,在其数据较多的情况下,是很费空间和损效率的。而其后说到的儿叉链表和三叉链表,它的左孩子指针、右孩子指针,其实就相当于主键、次键等功用。

    而后,整个的数据,却又是根据问题得来,进一步优化。到最后能通过编码解决问题,所依赖的是经过一系列算法和排序整理好的物理结构的数据。

    所以,数据结构,其实说的不是顺序、选择、循环这三个结构,我认为其描述的是逻辑、物理结构,其从原始数据—概念模型—逻辑模型—物理模型的描述。这一切都在为解决问题而服务,它是计算机解决问题的过程中很重要的一个环节,它的排序和算法,存储结构都将直接影响性能和功能。


    三、个人感受

    看完第一次,不经脑子,觉得它是新的,很难的。细细琢磨会儿,发现和数据库系统原理有很大的联系,也不算是新的。而且我们现在做的事儿好像都在分析着数据结构。书看完一遍,恐惧是没有了,信心大大的有。

  • 相关阅读:
    性能测试策略和关注指标
    ES7.17.1安装
    java 复制对象
    Java 实现树结构计算各个节点数的和
    自定义初始化ES实体类
    .net core datatable 导出 pdf 支持中文
    VSCode 快捷键(整理)
    国标平台LiveGBS GB28181接入录像机NVR、摄像头时没有通道 通道数位0的检查办法
    基于docker搭建Android cordova开发环境
    SpringBoot整合邮箱发送邮件
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010414.html
Copyright © 2020-2023  润新知