- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(C版)doc135
数据结构(C++版)
第1章 绪论
1.1 数据结构的重要性
图 1-1
1.2 面向对象程序设计
1.2.1 面向对象程序设计方法
1. 面向对象
2. 面向对象程序设计方法的特征
1.2.2 C++的特征及基本概念
1.3 基本术语
图1-2 数据元素和数据项
1.4 抽象数据类型
1.5 数据结构的概念
1.6 数据的逻辑结构
图1-3 一周七天数据结构图示
1.7 数据的存储结构
1. 顺序存储方法
2. 链式存储方法
图1-5 线性结构的链接存储
3. 索引存储方法
4. 散列存储方法
1.8 数据的运算
1.9 数据的逻辑结构、存储结构及数据的运算的关系
1.10 算法的描述
小结
习题
1. 填空题
(1) 数据的逻辑结构可形式地用一个二元组B=(K,R)来表示,其中K是,R是。
(2) 存储结构可根据数据元素在机器中的位置是否连续分为,。
(3) 是数据的基本单位,有时一个由若干个组成,在这种情况下,称为记录,是数据的最小单位,而由记录生成的线性表称为。
(4) 算法的基本要求有,,,,。
(5) 度量算法效率可通过,两方面进行。
(6) 在C++中建立参数类型和参数个数不同的同名函数是可能的,这称为函数。
2. 综合题
(1) 简述下列术语:
数据 数据元素 数据对象 数据结构 存储结构 数据类型 抽象数据类型
(2) 常用的存储表示方法有哪几种?
(3) 举例说明一下数据结构和算法的关系。
(4) 设有数据逻辑结构为B=(K,R),K={k1,k2,…,k9},R={k1,k3,k3,k8,k2,k3,k2,k4,k2,k5,k3,k9,k5,k6,k8,k9,k9,k7,k4,k7,k4,k6} 画出逻辑结构图,并确定相对于R哪些结点是开始结点,哪些结点是终端结点?
(5) 试举一个数据结构的例子,并叙述其逻辑结构、存储结构、运算三方面的内容。
(6) 什么是算法?详述算法设计的目的和算法必须满足的条件。
第2章 算法分析
2.1 算法分析的概念
图2-1 小规模输入时的运行时间
图2-2 中等规模输入时的运行时间
2.2 算法运行时间举例
2.3 最大连续子序列之和问题
2.3.1 简单易懂的O(n3)算法
2.3.2 一个改进的O(n2)算法
2.3.3 一个线性算法
2.4 静态搜索问题
2.4.1 顺序搜索
2.4.2 二分搜索
2.4.3 插值搜索
2.5 检验一个算法分析
2.6 Big\|Oh分析法的限制
小结
习题
1. 简答题
(1) 如定理2-1所描述的,从盒子中往外取球,在A)~D)所给的答案中,哪一个是定理中变量i,j,k对应的值?
A) red,5,6 B) blue,5,6 C) blue,3,red D) 6,5,red
(2) 基于定理2-2的描述,为什么不能充分获得一个最大连续子序列之和的次平方运行时间?
(3) 假设T1(n) = O(F(n)),T2(n) = O(F(n)),下列哪一个正确?
A) T1 (n)+ T2 (n) = O(F(n))B) T1 (n)- T2 (n) = O(F(n))
C) T1 (n)/ T2 (n) = O(1)D) T1 (n) = O(T2 (n))
(4) 将下列各式组合成与Big\|Oh相等的函数。
x2,x2 + x,x2 - x,x3/(x - 1)
(5) 程序A和程序B经分析,有不超过150nlogn和n2的最坏情况下的运行时间,如可能,分别回答下列各问题:
A) 当n值很大时(n 10 000),哪个程序对运行时间有保证?
B) n值较小(n 1000)时,哪一个程序对运行时间有更好的保证?
C) 在n = 1000的平均情况下,哪个程序运行更好?
D) 在所有可能的输入中,程序B总比程序A运行的快吗?
(6) 对于算法2-4的二分搜索,写出用以下代码片段替换的结果。
A) 第13行(测试): low highB) 第15行(赋值): mid = low+high/2
C) 第18行(赋值): low = midD) 第20行(赋值): high = mid
2. 理论题
(1) 采用典型算法用手工来计算下述问题,确定其运行时间。
A) 两个n位整数相加B) 两个n位整数相乘
C) 两个n位整数相除
(2) 对于n个项来说,以下计算xn的算法运行时间是多少? double power(double x,int n)
{
double result = 1.0;
for(int i
您可能关注的文档
最近下载
- 大学生职业生涯规划.pdf VIP
- 2025年中国南方电网有限责任公司校园招聘考试试题及答案解析.docx VIP
- 《物业服务模式》课件.ppt VIP
- 北师大版小学数学五年级上册《尝试与猜测》说课稿.docx VIP
- 2025年大学生职业生涯规划报告 .pdf VIP
- 2025河北燕煤新能源有限公司社会招聘4人笔试备考试题及答案解析.docx VIP
- 中国宫腔镜诊断与手术临床实践指南(2023版).pptx VIP
- 2025最新初中英语词汇3500词汇表.docx VIP
- 2025河北燕煤新能源有限公司社会招聘4人笔试参考题库附答案解析.docx VIP
- 2025管理沟通4考试题及答案.doc
原创力文档


文档评论(0)