zoukankan      html  css  js  c++  java
  • 软考——(2)数据结构

          数据结构,英文名字叫做Data Structure。说到数据结构,先要说一下数据是什么。数据的含义十分广泛,它并不仅仅指文字记录,它还可以是语音、图像、符号、视频等等。

          我们可以读取这些数据,那么这些数据在计算机中又是如何存储和组织的呢,这就是我们要说的数据结构。



    上面的思维导图是按照数据结构的分类及处理画的,其实二者并不是孤立的。在查找和排序中,也可以看到线性、树、图的影子。也就是在数据结构的逻辑存储结构中进行查找和排序等的运算,它们都是紧密结合在一起的。

    1)线性

    一个一个的元素线性的排列,如下图:


    这种结构的存储方式有两种:顺序存储和链表存储。

    顺序存储:


    和上面的线性逻辑结构一样,顺序存储中一个个元素有序的排列着。

    链表存储:


    链表存储中有一条“链”将一个个的元素连接起来,而每个元素的位置可以不邻接。

    2)树


    跟现实生活中的树一样,树形结构有且有一个根结点。树的相关术语很多,但都很容易理解,比如:结点的度,树的度,叶子,层次等等。

    由于树的结构十分复杂,我们通常研究的最多的是二叉树。但要注意的是,二叉树并不是树的特殊形式。对比上下两张图片,树中的结点的最大度数没有限制,但二叉树结点的最大度数为2.在树中,结点没有左右之分;而二叉树有区分。


    树的存储结构类似于索引存储结构。


    3)图

    与二叉树相比,树的结构要复杂一些,而图就比树更要复杂了。


    图中的任何两个结点都可以相邻接。与图类似的存储结构是散列表,即哈希。

    了解了这三个简单的逻辑结构,数据结构就算有了一个初步的认识了,对于之后的算法、查找、排序等,就比较轻松了。

          对于刚接触数据结构的人来说,通常会有这么一个疑问,为什么要学数据结构,它跟算法又有什么关系呢?

          瑞士计算机科学家Niklaus Wirth1976年出版的一本书的书名叫做“程序设计 算法 数据结构”,这句经典名言就体现了数据结构的重要性。数据结构,以及让我们十分头疼的算法并不是一门教你编程的课,它们可以脱离任何的计算机程序设计语言,而只需要从抽象意义上去概括描述。

          打一个很形象的比喻:程序设计就像盖房子,数据结构是砖、瓦,而算法则是设计图纸。你若想盖房子首先必须要有原材料(数据结构),但这些原材料并不能自动地盖起你想要的房子,你必须按照设计图纸(算法)一砖一瓦地去砌,这样你才能拥有你想要的房子。我们今天要说的数据结构正是程序设计这座大厦的基础,只有打好了基础,才有资格谈设计、谈构架。


  • 相关阅读:
    shell编程:字符串处理方式
    shell编程:变量替换
    export的用法
    docker stack利用secrets启动wordpress
    docker swarm创建swarm集群
    docker x509: certificate has expired or is not yet valid
    docker-compose的scale的用法
    字符串函数-unquote()函数
    Sass-@each
    Sass-@while
  • 原文地址:https://www.cnblogs.com/saixing/p/6730315.html
Copyright © 2011-2022 走看看