- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模板与数据结构习题1600
模板与数据结构习题1600
24、问渠那得清如许,为有源头活水来——朱熹
第六章 模板与数据结构习题
一、.基本概念与基础知识自测题
6.1 填充题
6.1.1 模板是为了实现代码的 (1) ,它把数据类型改为一个 (2) ,称为 (3) 程序设计
模板包括 (4) 和 (5)
答案:(1)重用
(2)设计参数
(3)参数化(parameterize)
(4)函数模板(function template)
(5)类模板(class template)
6.1.2 调用函数模板时,可以显式指定模板参数类型,也可以隐式进行,称为 (1) ,这是根据 (2) 来决定的
答案:(1)模板实参推演(template argument deduction)
(2)一组实际类型或(和)值
6.1.3 顺序查找可以用于 (1) 线性表,而对半查找可以用于 (2) 线性表
答案:(1)无序的(所有)
(2)有序的
6.1.4 最常见的排序方式有 (1) 、 (2) 和 (3)
如果现有一个已排好序的线性表,在表尾添加了一个元素,采用 (4) 排序法使它重新成为有序的所需工作量最小
答案:(1)选择
(2)插入
(3)交换
(4)交换(可利用原来的有序性)
6.1.5 给出以下指针的说明方式:指向一个4元素整型数组的指针为 (1) ;指向一个返回整型数,参数为两个整型数的函数的指针 (2) ;指向一个数组的指针,而该数组元素都是指向一个返回整型指针的无参函数 (3)
答案:(1)int(*p)[4]
(2)int(*p)(int,int)
(3)以指向6元素数组为例:int*(*)() (*p)[6]
6.2简答题
6.2.1 需要编写一个对多维数组通用的算法(即各维的大小未定),怎样才能把实参多维数组的信息全部传递到函数中去?
答:最佳方法是用函数模板,多维数组用模板类型参数传递,各维的大小作为参数传递
也可以用一维数组加各维的大小都作为参数传递
6.2.2 什么叫函数模板?什么叫模板函数?什么叫类模板?什么叫模板类?
答:不受数据类型限制的通用型的函数使代码的可重用性大大提高
把数据类型改为一个设计参数是一个可行的方案
这种程序设计类型称为参数化(Parameterize) 程序设计
这样的软件模块由模板(Template) 构造
包括函数模板和类模板
函数模板定义如下:
template模板参数表 返回类型 函数名(形式参数表){
......;//函数体
}
模板参数主要是模板类型参数
模板类型参数代表一种潜在的内置或用户定义的类型,由关键字typename或class后加一个标识符构成
函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,简化重载函数的设计
由调用函数模板(functron template) 而生成的函数,称为模板函数(template function)
类模板定义如下:
template模板参数表 class 类名{
......;//类声明体
};
模板参数有两种:模板类型参数和模板非类型参数
模板类型参数(template type parameter),它代表一种类型,由关键字 typename或class后加一个标识符
模板非类型参数由一个普通的参数声明构成
模板非类型参数表示该参数名代表了一个潜在的常量
如数组类模板,可以有一个数组长度的非类型参数
为通用的类模板定义中的模板类型参数指定了具体类型而生成的类称为模板类
6.2.3 什么叫线性表?其基本操作包括哪些?其中插入一个元素的关键在哪儿?
答:线性表是数据结构中的概念:每两个相邻元素之间都有直接前驱和直接后继的关系
这里除第一个元素外,其他元素有且仅有一个直接前驱,第一个元素没有前驱;除最后一个元素外,其他元素有且仅有一个直接后继,最后一个元素无后继
这样的特性称为线性关系
基本操作包括:计算表长度,寻找变量或对象x(其类型与表元素相同)在表中的位置(下标值),判断x是否在表中,删除x,将x插入列表中第i个位置,寻找x的后继,寻找x的前驱,判断表是否空,判断表是否满,取第i个元素的值等
当需要在顺序表的指定位置i插入一个数据x时,必须为它腾出这个位置,把从该位置开始向后的所有元素数据,后移一个位置,最后才插入
关键是后移时从最后一个元素开始
否则先移的数据会冲掉未移的数据
6.2.4 采用索引查找有哪些优点?它需要被查找数据有序吗?
答:索引,就象一本书的
文档评论(0)