数据结构开题篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bhdxmaomi/article/details/53926688

       一直以来数据结构就是软件开发先关专业的一门基础课程,同事也是非常重要的一门课程。这门课程和操作系统原理,计算机组成原理,数据库原理共同组成计算机专业的四大核心课程。但是这几门课程并不是谁都可以学得明明白白的,很多人都只是简单的学到了一些基本的,对于精髓,则学的并不怎么样。

       在这一些的课程里面,我将详细介绍数据结构这门课程的相关内容。今天这边是开题,只是对数据结构这门课程做一个整体上的概述。话不多少,接下来开始吧~

        数据(Data):是对信息的一种符号表示,是所有能输入到计算机中并且被计算机识别和处理的符号的总和就称之为数据。

        数据元素(Data Element):是数据的基本单位,一个数据元素可以有若干个数据项组成,数据项是数据不可分割的最小单位。数据项有时候也称为字段或者域。

        数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。  比如整数数据对象的集合可以表示为N={0,土1,土2}。

        也可以这么理解,数据由数据对象组成,数据对象由若干个数据元素组成,数据元素由数据项组成,数据项是组成数据的最小单位,所以不能继续细分。

      

        介绍完上面这些概念后,我们来正式介绍一下数据结构,它由以下三部分组成

        1.数据的逻辑结构

        2.数据的存储结构

        3.数据运算,施加在数据元素上的各种运算。

        数据的逻辑结构是从现实世界中抽象出来的结构,是直接面对现实世界的。而物理结构则是逻辑结构在计算机内存中存储的实现(镜像)。他们的关系大致如下:

        逻辑结构介绍

     线性结构:数据元素之间是一对一的关系,除了第一个元素和最后一个元素之外,其他元素都有且只有一个前驱结点和一个后驱节点,第一个元素只有后继节点,最后一个元素只有前继节点。

        非线性结构:数据元素之间为一对多的关系,每个元素都有一个或者直接前驱结点或者后驱节点。

         数据元素之间的关系可以分为以下四种:集合,线性,树形,图形四种结构。

        存储结构介绍

      1.顺序存储  每个存储节点都只包含一个数据元素,并且数据元素相继存放在连续的内存空间中。逻辑上相邻的元素在在计算的存储中仍然相邻。

        2.链式存储:逻辑上相邻的数据元素在存储结构上没必要相邻。每个存储节点包含一组指针,该组指针指向和本节点有关的逻辑上相邻的节点。

        3.索引存储:索引存储通常是在存储数据元素信息(数据表)的同时,还建立附加的索引表。索引表的形式一般为:(关键字,索引),其中关键字唯一的标识一个数据元素,而索引则存储的是数据元素在内存(数据表)中的地址。这种带索引表的存储结构可以大大地提高检索效率。

        4.哈希存储:它的基本思想是通过对节点关键字进行哈希运算得到一个值,并将这个值作为该节点的在内存中的存储地址。

         几种存储结构的优缺点:

        顺序存储:主要优点是存储空间利用率高,可以实现随机存取。缺点是:删除和插入操作时候,需要移动一系列的节点。

        链式存储:主要优点是:方便节点的删除,插入操作。缺点是:存储空间的利用率低,不能实现随机存取。

        索引存储:主要优点是:可以进行随机存取,插入删除操作只需要修改索引表中的存储地址即可,可以大大提高查找速率。缺点是增加索引表后,存储空间利用率低。

        哈希存储:主要优点是:可以实现随机存取,适用于进行快速查找和插入的场合。不同的是哈希存储只存储数据,不存储数据的逻辑结构。

        

        接下来,我们要介绍的是算法。俗话说:程序=数据结构+算法。要想写出好的程序,除了了解数据结构之外,算法也是我们必须要了解的。

        算法五大特性

        有穷性:一个算法必须在有限时间有限步骤之后执行完成。

        确定性:对于每种情况下的操作,在算法中都必须有明确的规定和说明,这样可以使算法的执行者或者阅读者明确其含义并如何执行。并且在任何条件下算法都只有一条执行路径。

        可行性:算法必须可以基本上完成其指定的功能

        输入性:算法必须有0个或者多个输入性,以表示算法执行的一些初始状态数据。

        输出性:算法必须有一个或者多个输出结果。

        设计算法时,需要满足的目标

        正确性:算法要能够正确的执行预先设计好的功能和性能要求

        可使用性:算法可以很方便的使用,也叫用户友好型

        可读性:易于别人的劣迹和阅读。

        健壮性:算法应该有很好的容错性,提供一些异常处理机制,避免出现死机或者中断等现象

        高效率和低存储性:高效率一般指算法的执行时间。高存储量指的是算法执行过程中所需的最大存储空间。


好了,以上就是对数据结构的简单介绍


        



猜你喜欢

转载自blog.csdn.net/bhdxmaomi/article/details/53926688