数据结构复习资料 第1章.pdfVIP

  • 9
  • 0
  • 约7.89千字
  • 约 6页
  • 2021-09-26 发布于江苏
  • 举报
第1章 绪论 二、难点与重点 1、基本概念:理解什么是数据、数据对象、数据元素、数据结构、数据的逻辑结构与 物理结构、数据结构的抽象层次。 3、算法与算法分析:理解算法的定义、算法的特性、算法的时间代价、算法的空间代 价。 ➢ 算法与程序的不同之处需要从算法的特性来解释 ➢ 算法的正确性是最主要的要求 ➢ 算法的可读性是必须考虑的 ➢ 程序的程序步数的计算与算法的事前估计 ➢ 程序的时间代价是指算法的渐进时间复杂性度量 三、习题的解析 1-2 什么是数据结构? 有关数据结构的讨论涉及哪三个方面? 【解答】 数据结构是指数据以及相互之间的关系。记为:数据结构 = {D, R }。其中,D 是某一 数据对象,R 是该对象中所有数据成员之间的关系的有限集合。 有关数据结构的讨论一般涉及以下三方面的内容: ① 数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ② 数据成员极其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为 存储结构; ③ 施加于该数据结构上的操作。 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存 储无关的。因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的 应用视图。数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是 依赖于计算机的,是数据的物理视图。数据的操作是定义于数据逻辑结构上的一组运算,每 种数据结构都有一个运算的集合。例如搜索、插入、删除、更新、排序等。 1-3 数据的逻辑结构分为线性结构和非线性结构两大类。线性结构包括数组、链表、 栈、 队列、优先级队列等; 非线性结构包括树、图等、这两类结构各自的特点是什么? 【解答】 线性结构的特点是:在结构中所有数据成员都处于一个序列中,有且仅有一个开始成员 和一个终端成员,并且所有数据成员都最多有一个直接前驱和一个直接后继。例如,一维数 组、线性表等就是典型的线性结构 非线性结构的特点是:一个数据成员可能有零个、一个或多个直接前驱和直接后继。例 如,树、图或网络等都是典型的非线性结构。 12 1-6 什么是算法? 算法的5 个特性是什么? 试根据这些特性解释算法与程序的区别。 【解答】 通常,定义算法为“为解决某一特定任务而规定的一个指令序列。”一个算法应当具有 以下特性: ① 有输入。一个算法必须有0 个或多个输入。它们是算法开始运算前给予算法的量。 这些输入取自于特定的对象的集合。它们可以使用输入语句由外部提供,也可以使用赋值语 句在算法内给定。 ② 有输出。一个算法应有一个或多个输出,输出的量是算法计算的结果。 ③ 确定性。算法的每一步都应确切地、无歧义地定义。对于每一种情况,需要执行的 动作都应严格地、清晰地规定。 ④ 有穷性。一个算法无论在什么情况下都应在执行有穷步后结束。 ⑤ 有效性。算法中每一条运算都必须是足够基本的。就是说,它们原则上都能精确地 执行,甚至人们仅用笔和纸做有限次运算就能完成。 算法和程序不同,程序可以不满足上述的特性(4)。例如,一个操作系统在用户未使用 前一直处 “等待”的循环中,直到出现新的用户事件为止。这样的系统可以无休止地运行, 直到系统停工。 此外,算法是面向功能的,通常用面向过程的方式描述;程序可以用面向对象方式搭建 它的框架。 1-7 设n为正整数, 分析下列各程序段中加下划线的语句的程序步数。 (1) for (int i = 1; i = n;i++) (2) x = 0; y = 0; for (int j = 1; j = n; j++) { for (int i = 1; i = n;i++) c[i][j] = 0.0; for (int j = 1; j = i; j++) for (int k = 1; k = n;k++) for (int k = 1; k = j;k++)

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档