数据结构学习笔记——绪论

来源:互联网 发布:手机淘宝无线链接地址 编辑:程序博客网 时间:2024/05/04 15:27

  数据结构是计算机专业的必修课,但遗憾的是,我并不是计算机专业的学生,以至于没有系统地跟着老师学习过这门课程。最近在网上下载了一些视频,觉得还不错,比我以前自学要好很多,索性就把笔记记录下来。首先从绪论开始。


什么是数据结构


要想学好数据结构,就首先要弄清楚这门课是关于什么的,有什么用。概括的来说,数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中如何表示和实现”的学科。


基本概念和术语


  1. 数据(data):是对信息的一种符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
  2. 数据结构(data structure):有一个特性相同的数据元素的集合,如果在数据元素之间存在一种或多种特定的关系,则称为一个数据结构。
    数据结构可以分成两部分理解:数据:数据元素的集合 结构:数据元素之间纯在的关系。
    也就是说数据结构是相互之间存在着某种逻辑关系的数据元素的集合。

    从关系或结构分,数据结构可归结为以下四类:
    线性结构:结构中的数据元素之间存在一对一的关系。
    树形结构:结构中的数据元素之间存在一对多的关系。
    图状结构:结构中的数据元素之间存在多对多的关系。
    集合结构:结构中的数据元素除了同属于一种类型外,别无其它关系。

  3. 数据结构的形式化描述: 数据结构是一个二元组Data_Structures=(D,S) 其中:D是数据元素的有限集,S是D上关系的有限集。

  4. 数据结构包括“逻辑结构”和“物理结构”两个方面:

    • 逻辑结构是数据元素之间的逻辑关系的描述,他可以用一个数据元素的集合和定义在此集合上的若干关系来表示;
    • 物理结构(存储结构)是数据结构在计算机中的表示和实现。

    关于逻辑结构,需特别注意:
    1 逻辑结构与数据元素本身的形式、内容无关。
    2 逻辑结构与数据元素的相对位置无关。
    3 逻辑结构与所含数据元素的个数无关。
    4 逻辑结构与数据的存储无关,它是独立于计算机的。
      数据的逻辑结构和存储结构是密切相关的两个方面。一般地,一种数据的逻辑结构根据需要可用多种存储结构来存储,而采用不同的存储结构,其数据处理的效率往往是不同的。

  5. 数据的存储结构——逻辑结构在存储器中的映像

    • 数据元素的映像方法:用二进制位的位串表示数据结构
    • 关系的映像方法:

      • 顺序映像

        顺序存储方式:以相对的存储位置表示后继关系。

      • 非顺序映像

        1. 链式存储方式:需要用一个和x在一起的附加信息(指针)指示y的存储位置。
        2. 索引存储方式:除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,兼有静态和动态特性。
        3. 散列存储方式:通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址。其特点是存取速度快,只能按关键字随机存取,不能顺序存取,也不能折半存取。
  6. 数据类型:在一种程序设计语言中,变量所具有的的数据种类。
    例:在C语言中的数据类型:
    基本类型:整型、浮点型、字符型、指针、枚举型
    构造类型:数组、结构体、联合体。
  7. 数据对象:某种数据类型元素的集合。数据对象可以是有限的,也可以是无限的。

    数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。

  8. 抽象数据类型:一个数学模型以及定义在该模型上的一组操作。
    抽象数据类型实际上就是对该数据结构的定义。因为它定义了一个数据的逻辑结构以及在此结构上的一组算法。
    用三元组描述如下:(D,S,P)


算法和算法分析


  1. 算法:是对特定问题求解步骤的一种描述。算法是指令的有限序列,其中每一条指令表示一个或多个操作。
    特性:(1)有穷性(2)确定性(3)可行性(4)输入(5)输出
  2. 算法和程序:十分相似,但又有区别。
    一个程序不一定满足有穷性。程序中的指令必须是机器可执行的,而算法中的指令则无此限制。算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。一个算法若用程序设计语言来描述,则它就是一个程序。
  3. 算法和数据结构:
    是相辅相成的。解决某一特定类型问题的算法可以选择不同的数据结构,而且选择恰当与否直接影响算法的效率。反之,一种数据结构的优劣有各种算法的执行来体现。
0 0
原创粉丝点击