数据结构(C++版)doc135.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档