您的位置:首页 > 理论基础 > 数据结构算法

数据结构绪论

2014-04-09 21:41 204 查看
      开始将学到的数据结构的知识进行系统化,将零碎的知识串起来,使知识系统化。

    数据结构的形成和理解

     1968年才开始设立,在这之前,它只是在某些课程中零碎的存在着,在计算机的发展过程中,因为对数据的处理越来越重要,便将这些知识抽象起来,形成数据结构这门学科。“数据结构”的研究不仅涉及到计算机硬件(特别是编码理论、储存装置和存储方法等)的研究范围,而且和计算机软件的研究有着更为密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。

     一般来说,用计算机解决一个具体问题时一般步骤:具体问题——>抽象出数学模型——>设计解数学模型的算法——>编程——>调试——>结果。而数据结构涉及到:数学模型的建立和对该模型具体实现的对应得算法。

     简单来说,数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。

      什么是数据结构

     系统化后的数据结构学科,为了统一标准,定义了一些基本概念和术语:数据(data)是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。数据对象(data object)是性质相同的元素的集合,是一个数据的一个子集。比如,我们在计算机上常用的声音,图片文字等就是数据,我们常用的图片里的一个圆就是数据元素,而各种图形比如圆、正方形、长方形等组成的集合就是一个图形的数据对象。

    数据结构的定义:是相互之间存在一种或多种特定关系的数据元素的集合。

    在我们生活中万物都不是独立存在的,数据也一样,它们之间一般会有某种特定的关系,这种数据元素之间的关系,称为“结构”。结构=关系+实体。

    跟据数据元素之间关系的不同特征,通常的基本结构有:

     1、集合:结构中的数据元素之间除了“同属于一个集合”的关系之外,别无其他关系。

                       


       因为集合中的数据元素之间没有关系,所以数据之间没有结构

     2、线性结构:结构中的数据元素之间存在一个一对一的关系。

       


     要学习的具有线性结构的数据结构有:线性表、栈、队列、串以及数组。

      3、树形结构:结构中的数据元素之间存在一个一对多的关系。



    要学习的具有树形结构的数据结构有:树(二叉树)

     4、图状结构(网状结构):结构中的数据元素之间存在多个多对多的关系。

          


        要学习的具有图状结构的数据结构有:图

       数据元素的形式定义:二元组(D,S),其中D是数据元素的有限集,S是D上关系的有限集。

       数据结构的分类:

           1、按照性质可分为:

                          a、数据的逻辑结构:数据之间的逻辑关系

                          b、数据的物理结构(存储结构):数据元素及其关系在计算机存储器中的存储方式。

                  2、按照存储方式:
                          a、顺序存储:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系
                          b、链式存储:借助元素存储地址的指针来表示数据元素之间的逻辑关系

      怎样学习数据结构

          数据结构三个方面的含义:数据的逻辑结构、存储结构和数据的运算(算法)。

          数据的逻辑结构:有四种基本类型集合,线性结构,树形结构,图状结构

          存储结构:顺序存储和链式存储

          算法:定义:指一系列确定的而且是在有限步骤内能完成的操作。

              5个重要特性:(1)有穷性
:能执行结束

                                     (2) 确定性 :对于相同的输入执行相同的路径,有相同的输出。

                              (3) 输入:0至多个输入

                             (4) 输出:1至多个输出

                            (5) 有效性(可行性) :用于描述算法的操作都是足够基本的。

       在学习中以数据的逻辑结构为主导线索学习,再在学习每种逻辑结构的时候跟据存储结构的不同写不同的算法来将每种数据结构具体化。

       为了更好的理解每种模型,引入概念——抽象数据类型(ADT)

              定义:是指一个数学模型以及定义在该模型上的一组操作。

              含义:1、与数据类型在实质上是一个概念。
                   2、范畴更广,不再局限与已定义并实现的数据类型。
                   3、与具体相对应

             
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构