数据结构与算法分析(C++语言版)_张琨版 第一章课后习题答案
第一章 绪论
一、选择题
1. A B 2.B 3.B 4. D 5.A 6.A 7.C 8. B 9.D 10. A
二、填空题
1. 逻辑关系 2.树形结构 图状结构 3.链式存储结构 4. 没有 1 没有 1
5. 前驱 1 后继 多个 6. 多个 7.有穷性 确定性 可行性 8.确定性 9.顺序存储结构 10.空间复杂度
三、判断题
1. × 数据项是数据的最小单位
2.√
3. × 数据的逻辑结构与存储结构无关
4. × 数据的逻辑结构主要指数据元素之间的相邻关系,与元素值无关
5. × 如线性表和二叉树属于两种不同的逻辑结构,但都可以采用顺序存储方法
6. × 数据的逻辑结构指数据元素之间的逻辑关系
7. × 算法优劣的判断标准是算法的时间复杂度和空间复杂度,他们与所用的计算机无关
8. × 程序不等同于算法,程序可以不停机,算法具有有穷性
9. × 算法不必由计算机实现
10. √
四、简答题
1.在数据结构中,逻辑结构与计算机无关,存储结构是数据元素之间的逻辑关系在计算机中的表示。存储结构不仅将逻辑结构中所有数据元素存储到计算机内存中,而且还要在内存中存储各数据元素间的逻辑关系。通常情况下,一种逻辑结构可以由多种存储结构。
数据结构是相互之间存在一种或多种特定关系的数据元素的集合,一般包括3个方面的内容:数据的逻辑结构、存储结构和数据的运算。而数据类型是一个值的集合和定义在这个值集上的一组运算的总称。
2. 在数据结构中这类例子较多,如顺序表和字符串、栈和队列等,下面以二叉树和二叉排序树进行说明。
首先,二叉树和二叉排序树是两个不同的数据结构。二叉树的定义为:二叉树是有限的节点集合,这个集合或者是空,或者是由一个根节点和两棵互不相交的称为左子树和右子树的二叉树组成。二叉排序树的定义为:二叉排序树或者是空树,或者是满足以下性质的二叉树:
若它的左子树非空,则左子树上所有记录的值均小于根记录的值。
若它的右子树非空,则右子树上所有记录的值均大于根记录的值。
左右子树本身又各是一棵二叉排序树。
两者在逻辑结构和存储方式上完全相同,因为二叉排序树完全采用二叉树的逻辑表示和存储方式。两者的运算由建立树、插入节点和查找节点等。
对于二叉树和二叉排序树,这些运算的定义是不同的,如查找节点时,在二叉树中查找某节点需要对其中节点进行遍历,其时间复杂度为O(n),而在二叉排序树中查找节点时一层层向下查找,其时间复杂度为O(h)(h为二叉排序树的高度)。如插入节点时,二叉树中可以在任何地方插入一个节点,而二叉排序树插入一个节点后,必须使其满足二叉排序树的特性。
3. 通常从两方面考虑:第一是算法所需的存储空间量,第二是算法所需的时间。对于算法所需的时间又涉及以下几点:
程序运行时所需输入的数据总量、计算机执行每条指令所需的时间、程序中指令重复执行的次数
4. 常见的时间复杂度按数量级递增排列,依次为:常数阶0(1)、对数阶0(log2n)、线性阶0(n)、线性对数阶0(nlog2n)、平方阶0(n^2)、立方阶0(n^3)、k次方阶0(n^k)、指数阶0(2^n)
(1)先将题中的函数分成如下几类:
常数阶:2^100
对数阶:log2n
K次方阶 n^0.5 n^(3/2)
指数阶 (按指数由小到大排):n^logn、(3/2)^n、2^n、 n!、 n^n
(2)(2/3)^n 由于底数小于1, 所以是一个递减函数,其数量级应小于常数阶
所以根据以上分析按增长率由小到大的顺序排列可以得到:
(2/3)^n < 2^100 < log2n < n^0.5 < n^(3/2) < n^(log2n) < (3/2)^n <2^n < n! < n^n
5. 数据结构的主要内容是讨论数据组织和数据处理。一个求解问题可以用ADT(抽象数据类型)来描述,它包含数据的逻辑结构和抽象运算。一个逻辑结构可以对应多个存储结构,每种存储结构之上可以设计多种实现抽象运算的算法,通过时间复杂度和空间复杂度分析得到最佳算法。
五、计算题
1. O(n) 2.O(log3n) 3. O(log4n) 4. O(n^2 *log5n) 5.O(n^2) 6. O(n^3)
7. O(n) 8. (n/2)^2 O(n^2) 9. O(n)
10. (1)首先我们针对有n个碟子的柱子a,将n-1个碟子移动到柱子b。假定这个问题为S(n)表示移动的步数,则上面的问题是S(n)的一个子问题S(n-1)。然后将最下面的碟子移动到柱子c,最后再将n-1个碟子移动到c。后面这一步也相当于S(n)的子问题S(n-1)。.它和前面第一步移动n-1个碟子唯一不同的地方在于第一步是借助c将n-1个碟子从a移动到b,而最后这一步是借助a将n-1个碟子从b移动到c。除了借助的柱子和目的柱子不一样,其他的都是一样的。这样我们就可以很容易得到一个这样的推导关系:
S(n) = 2S(n - 1) +1
(2) 再考虑一种初始的情况,假定只有一个碟子需要移动,我们直接将碟子从a移动到c,那么需要的步骤是1步。因此可以说S(1) = 1。
综上可以得到,S(n)=2^n -1 所以该算法的时间复杂度为O(2^n)
【注意】本答案为呼呼学长 QQ1607151753 整理,仅用于内部交流,未经允许,严禁私自传播。
数据结构与算法分析(C++语言版)_张琨版 第一章课后习题答案相关推荐
- C语言程序设计第五版 谭浩强 第四章 课后习题 答案
谭浩强C语言程序设计第五版 第4章 课后习题 答案 点我看视频讲解+可运行源码 记得一键三连哦 第四章 选择结构程序设计 1. 什么是算术运算?什么是关系运算?什么是逻辑运算? [答案解析] 算熟运算 ...
- C语言程序设计教程(第三版)李凤霞 第一章课后习题答案
第一章:程序设计基础知识 一. 单项选择题 1.面向过程的程序设计语言是________. A)机器语言 B)汇编语言 C)高级语言 D)第四代语言 2.程序设计一般包含以下四个步骤,其中其中首先应该 ...
- 计算机网络-自顶向下方法 第一章课后习题答案(第七版)
练习题 R1. 无不同: 手机.智能手环等连入网络的都为端系统: Web服务器是端系统: R2. 维基百科:外交礼仪通常被描述为一套国际礼仪规则.这些久经考验的规则使国家和人民更容易在一起生活和工作. ...
- 《Python语言程序设计》王恺 机械工业出版社 第一章课后习题答案
第一章 初识Python 1.6 课后习题 (1)高级语言翻译为机器语言的方式有两种:一种是编译,一种是解释.Python属于解释型语言 (2)Python程序支持两种运行方式:交互式和脚本式 (3) ...
- C语言程序设计教程(第三版)李凤霞 第十一章课后习题答案
第十一章 文件 一.单项选择题 1.在进行文件操作时,写文件的一般含义是( ). A)将计算机内存中的信息存入磁盘 B)将磁盘中的信息存入计算机内存 C)将计算机CPU中的信息存入磁盘 D)将磁盘中的 ...
- 数据库系统概论第一章课后习题答案(第5版)
本文PDF版下载:点击下载 1.试述数据.数据库.数据库系统.数据库管理系统的概念. (1)数据是描述事物的符号记录. (2)数据库是长期储存在计算机内的.有组织的.可共享的数据集合. (3)数据库系 ...
- 数据库原理 西安电子科技大学(第三版) 付婷婷 第三章 课后习题答案
CREATE TABLE student_t( sno Char(7) PRIMARY KEY,--学号 sname Varchar(20) NOT NULL,--姓名 ssex CHAR(2) NO ...
- 运营管理最新版史蒂文森_运营管理-史蒂文森stevenson各章课后习题答案
第1题 1 最小节拍2.4分钟 2 450/2.4=187.5 450/18=25 产量范围25-187.5 3 18/2.4=7.5 取整 8个工作地 4 450/125=3.6分钟 5 450 ...
- 《高等工程数学》吴孟达版,第一章课后习题答案
附上施密特正交化证明 第14题还没太看懂题目,等看明白了再来更,嘻嘻!
- 微机原理与接口技术[第三版]——第一章课后习题答案
1.进制转换 (1)D(128) = B(10000000) = O(200) = H(80) (2)D(1024) = B(10000000000) = O(2000) = H(400) (3)D( ...
最新文章
- 【机器学习基础】用Python画出几种常见机器学习二分类损失函数
- 使用FormData进行Ajax请求异步上传图片案例
- 图片太多加载过慢?学学图片懒加载吧
- 遇到npm install的错误,多比较比较npm的版本
- 什么是量子计算机?用一个简单例子来解释
- 真格量化-历史波动率
- java gson 工具类_GSON 实体 转换工具类
- 在Ubuntu 18.04上使用Nginx安装WordPress
- 玩转树莓派-2.配置你的树莓派
- 令程序员们夜不能寐的“噩梦”除了改需求,还有这些…...
- 【论文导读】Continuity Scaling: A Rigorous Framework for Detecting andQuantifying Causality Accurately
- mysql myisam 主键关联_MySQL中myisam和innodb的主键索引有什么区别?
- Update|亚洲精品菜订餐平台「Chowbus」获400万美金新融资,由Greycroft和FJ labs领投...
- processing画坐标系,画函数图像
- Docker 安装最新版禅道16.5版本 原创
- python已知两条直角边求斜边,Python实现“已知三角形两个直角边,求斜边”
- Linux命令+shell脚本大全:处理数据文件
- 举个栗子!Tableau技巧(38):快速插入个性化背景
- 都有哪些数据恢复软件是免费的?
- JDBC:事物管理与事物隔离界别