数据结构和算法的基本概念

一、数据结构的基本概念

1.数据
数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并且被计算机程序处理的符号的总称。例如,整数、实数和字符串都是数据。

2.数据元素
数据元素是数据的基本单位,在计算机程序中通常将其作为一一个整体进行考虑和处理。有时,一个数据元素可由若干数据项组成。例如,一本书的书目信息为一个数据元素,而书目信息的每一项(如书名、作者名等)为一个数据项。

3.数据项
数据项是数据结构中讨论的最小单位,是数据记录中最基本的、不可分的数据单位。

4.数据对象.
数据对象是性质相同的数据元素的集合,是数据的一个子集。例如,大写字母就是一个数据对象,大写字母数据对象是集合{‘A’, ‘B’, …‘Z’ }。

5.数据结构
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。数据结构包括3方面的内容:逻辑结构、存储结构和对数据的运算。

6.数据的逻辑结构
数据的逻辑结构是对数据之间关系的描述,它与数据的存储结构无关,同一种逻辑结构可以有多种.存储结构。归纳起来数据的逻辑结构主要有以下两大类。
(1)线性结构
简单地说,线性结构是-一个数据元素的有序(次序)集合。它有以下4个基本特征:
1)集合中必存在唯一的一个“第一个元素”。
2)集合中必存在唯一的一个“最后一个元素”。
3)除最后一个元素之外,其他数据元素均有唯一的“后继”。
4)除第一个元素之外,其他数据元素均有唯一的“前驱”。
数据结构中,线性结构是指数据元素之间存在着“一对一”的线性关系的数据结构。
例如,(a1, a2, a3, … an),a1为第一个元素,an 为最后一个元素,此集合即为一个线性结构的集合。
(2)非线性结构
与线性结构不同,非线性结构中的结点存在着一对多的关系, 它又可以细分为树形结构和图形结构。

7.数据的物理结构
数据的物理结构又称为存储结构,是数据的逻辑结构在计算机中的表示(又称映像)。它包括数据元素的表示和关系的表示。当数据元素是由若干数据项构成的时候,数据项的表示称为数据域。例如,一个链表结点,结点包含值域和指针域,这里结点可以看作一个数据元素,其中的值域和指针域都是这个数据元素的数据域。
数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像。对应的两种不同的存储结构分别是顺序存储结构和链式存储结构。顺序映像是借助数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系:非顺序映像是借助指针表示数据元素之间的逻辑关系。实际上,在数据结构中有以下4种常用的存储方法。

(1)顺序存储方法
顺序存储方法是存储结构类型中的一种,该方法是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储结构称为顺序存储结构,通常顺序存储结构是借助于计算机程序设计语言(如C/C++)的数组来描述的。
(2)链式存储方法
链式存储方法不要求逻辑上相邻的结点在物理位置上也相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储结构表示称为链式存储结构,通常借助于计算机程序设计语言(如C/C++)的指针类型来描述它。
(3)索引存储方法
索引存储方法在存储结点信息时除建立存储结点信息外,还建立附加的索引表来标识结点的地址。索引项的一般形式是<关键字,地址>。关键字标识唯一一个结 点,地址作为指向结点的指针。
(4)散列存储方法
散列存储方法的基本思想是根据结点的关键字通过散列函数直接计算出该结点的存储地址。这种存储方法本质上是顺序存储方法的扩展。

二、算法的基本概念

1.算法
算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列。
2.算法的特性
一个算法应该具有以下5个重要的特征。
(1)有穷性
一个算法必须保证执行有限步之后结束。
(2)确定性
算法的每一步骤必须有确定的定义。
(3)输入
一个算法有0个或多个输入,以刻画运算对象的初始情况。所谓0个输入是指算法本身确定了初始条件。
(4)输出
一个算法有一个或多 个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。
(5)可行性
算法中的所有操作都必须可以通过已经实现的基本操作进行运算,并在有限次内实现,而且人们用笔和纸做有限次运算后也可完成。
3.算法的设计目标
算法设计目标包括正确性、可读性、健壮性和算法效率4个方面,其中算法效率通过算法的时间复杂度和空间复杂度来描述。
(1)正确性
要求算法能够正确地执行预先规定的功能和性能要求。这是最重要也是最基本的标准。
(2)可读性
要求算法易于人的理解。
(3)健壮性
要求算法有很好的容错性,能够对不合理的数据进行检查。
(4)高效率与低存储量需求
算法的效率主要是指算法的执行时间。对于同一个问题如果有多种算法可以求解,执行时间短的算法效率高。算法的存储量是指算法执行过程中所需要的最大存储空间。高效率和低存储量这两者都与问题的规模有关。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值