数据结构:基本概念

数据:是能输入计算机且能被计算机处理的各种符号的集合;信息的载体;是对客观十五符号化的表示;能够呗计算机识别、存储和加工。

包括

数值型的数据:正数,实数等。

非数值型的数据:文字、图像等。

数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

一个数据元素有若干个数据项组成,数据项是最小的单位

数据对象:是性质相同的数据元素的集合,是数据的一个子集。

数据结构包括三个方面的内容:

  1. 数据元素之间的逻辑关系,也称之为逻辑结构。
  2. 数据元素以及其关系在计算机内存中的表示(映像),也称之为数据的物理结构存储结构
  3. 数据的运算和实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。

逻辑结构:描述数据元素之间的逻辑关系。与数据存储无关,独立于计算机;是从具体问题抽象出来的数据模型。

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

两者之间的关系:

  1. 存储结构是逻辑关系的映像与元素本身的映像。
  2. 逻辑结构是数据结构的抽象,存储结构是数据结构的实现。
  3. 两者综合起来建立了数据元素之间的结构关系。

逻辑结构的种类

划分一:

  1. 线性结构,有且仅有一个开始和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继。
  2. 非线性结构:一个节点可能有多个直接前驱和直接后继。

划分二

  1. 集合结构:结构中的数据元素之间除了同属一个集合的关系外,无任何其他关系。
  2. 线性结构:结构中的数据元素之间存在着一对一的线性关系。
  3. 树形结构:结构中的数据元素之间存在着一对多的层次关系。
  4. 图形结构或者网状结构:结构中的数据元素之间存在着多对多的任意关系。

存储结构的种类:

  1. 顺序存储结构:数据元素存放的物理地址是连续的,数据元素之间的逻辑关系由元素的存储位置来表示
  2. 链式存储结构:用一组任意的存储单元存储数据元素,数据元素之间的逻辑关系用指针表示。
  3. 索引存储结构:在存储结点信息的同时,建立附加的索引表。
  4. 散列存储结构:根据结点的关键字直接计算出该结点的存储地址。

算法的特性

算法是一系列解决问题的步骤,具有以下特性:

  1. 有穷性:算法必须在有限的步骤内结束。
  2. 确定性:算法的每一步骤必须确定,无歧义。
  3. 可行性:算法的每一步骤必须可行,能够实现。
  4. 输入:算法应该有输入,输入是算法的数据。
  5. 输出:算法应该有输出,输出是对输入数据的处理结果。

算法的设计需要考虑问题的规模和复杂度,以及算法的效率和可读性。好的算法可以提高程序的运行效率,减少资源的浪费。

算法设计要求

  1. 正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案;
  2. 可读性:算法设计的另一目的是为了便于阅读、理解和交流
  3. 健壮性:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果;
  4. 时间效率高存储量低:时间效率指的是算法的执行时间,对于同一个问题,如果有多个算法能够解决,执行时间短的算法效率高,执行时间长的效率低。存储量需求指的是算法在执行过程中需要的最大存储空间,主要指算法程序运行时所占用的内存或外部硬盘存储空间。设计算法应该尽量满足时间效率高和存储量低的需求。

你可能感兴趣的:(数据结构,数据结构)