一、再拿下一城

      在前文中小编已经向大家介绍了《【软考】软件攻城狮考试(四)——面向对象》,其实这个过程中的理解还是要深刻的。接下来,就要面对的一个国家是”数据结构“,数据结构是一个程序设计和技术深厚的一个国家,但是分析分析他的组成还是比较简单的。下面小编就带大家走进数据结构:

二、了解敌人

数据结构




【软考】软件攻城狮考试(五)——数据结构_软件


图一 数据结构总览

      从图中可以看出,数据结构按照逻辑关系的不同分为线性结构和非线性结构,之前接触过这些部分的人都知道,都是一些比较简单的部分。数据结构是程序设计的重要理论和技术基础。它指的是数据元素的集合及元素间的相互关系和构造方法。设计回来的数据结构可是算法简单而高效。

2.1 线性结构



【软考】软件攻城狮考试(五)——数据结构_面向对象_02


图二 线性结构

      线性结构是一种基本的数据结构,主要用于对客观世界中具有单一的前驱和后继的数据关系进行描述。即“一个接一个排列”。特点是数据元素之间呈现一种线性关系。

      线性结构可以分成四个部分:线性表、栈、队列以及串。这些都是比较基础的知识,在数据结构中有很重要的作用,而且学习也非常的简单,在这里由于篇幅,有需要了解的朋友可以转向《【数据结构】数据结构与算法(一)——线性表》

2.2 树



【软考】软件攻城狮考试(五)——数据结构_软件_03


图三 树

      树结构是一种非常重要的线性结构,该结构中的一个数据元素可以有一个或者两个直接后继元素,树可以用来描述客观世界中广泛存在的层次结构关系。

      树之间有一个特殊的一类是二叉树,二叉树是n个结点的有限集合,或者是空树(n=0),或者是由一个根结点及两棵不相交的且分别称为左、右子树的二叉树。了解更多请前往《【数据结构】数据结构与算法(二)——树》

2.3 图



【软考】软件攻城狮考试(五)——数据结构_面向对象_04


      图是比树结构更加复杂的一种数据结构。在图结构中一个结点的前驱结点和后继结点的数据是没有限制的。如果把线性结构比喻成数据结构国家的工人的话,树就是一个士兵,而图呢?就是一个骑兵。装备越来越精致,技术越来越复杂。这就是数据结构的变化。了解更多请前往《【数据结构】数据结构与算法(三)——图》

2.4 查找



【软考】软件攻城狮考试(五)——数据结构_技术_05


图四 查找

      查找是一种常用的基本运算。为了确定记录在查找表中的位置,需和给定关键字值进行比较和次数的期望值称为查找算法在查找成功时候的平均查找长度。

顺序查找:(n+1)/ 2

    折半查找:(n+1)log2(n+1)/ n - 1

    分块查找:1/2 * (n/s +s)+1   s每一块记录数,n表长

      了解更多请前往《【数据结构】数据结构与算法(四)——查找》

2.5 排序



【软考】软件攻城狮考试(五)——数据结构_技术_06


图五 排序



【软考】软件攻城狮考试(五)——数据结构_软考_07


图六 排序对比

      这里我们将要介绍这些排序,将从代码、思想、时间复杂度、空间复杂度、稳定性等方面来介绍,通过这些系统的学习可以让我们更加深入的了解排序,更加的深入的理解排序。更多了解《【数据结构】数据结构与算法(五)——排序》

三、如何应对

3.1 学会利用互联网



【软考】软件攻城狮考试(五)——数据结构_技术_08


图七 https://visualgo.net/heap

      在互联网上,有很多关于数据结构的知识,可以利用软件来扩大自己的认识方面,也可以更好的促进大家理解排序,通过代码和动态的变化,让我们更加的理解深刻。

3.2 小组学习

      通过小组学习可以让我们更好的了解讨论不同的知识点,更好的让我们理解这个学习方式。

3.3 等等

四、❤化敌为友❤

      这样通过不断的进攻,收获结果的时候终于来了。数据结构就是要抽象出来自己的东西,通过把控这个国家,小编就这么不断完成,加油!!

      下一篇小编讲给大家带来《软件攻城狮考试(六)——硬件》