大学职业搜题刷题APP
下载APP
首页
课程
题库模板
Word题库模板
Excel题库模板
PDF题库模板
医考护考模板
答案在末尾模板
答案分章节末尾模板
题库创建教程
创建题库
登录
logo - 刷刷题
创建自己的小题库
搜索
【简答题】

[说明]
对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图7-1显示了各个类间的关系。以下是JAVA语言实现,能够正确编译通过。
[图7-1]

[C代码]
typedef bool(*fun1)();
typedef (1) (*fun2)();
const int BOOK_MAX = 10;//最大书本数
struct Book
char name30;
;
struct BookShelf//书架
struct Book books[BOOK MAX];
int index;//书架上最后一本书的下标加1,即下一本书的下标,如0表示有0本书
;
Struct Book* getBookAt(struct BookShelf *BS, int index)
//从书架BS上取得下标为index的书
//只有当下标大于等于0且不大于当前书架上的最后一本书对应的下标,才取书成功:
//否则失败,返回NULL

if(index >= 0 && (2) )
return &BS->books[index];

return NULL;

bool appendBook(struct BookShelf *BS, struct Book book)

if(BS->index < BOOK_MAX)
BS->books[BS->index++] = book;
return true;

return false;

int getLength(struct BookShelf *bookShelf)

return bookShelf->index;

struct Iterator//迭代器
fun1 hasNext;//判断是否还有下一个元素
fun2 next;//取得下一个元素
;
struct BookshelfIteratorf//书架迭代器
int index;
struet BookShelf* bookShelf;
bookShelfIterator = 0, NULL;
bool BShasNext()//判断是否还有下一本书

if(bookShelfIterator.index
return true;
else
return false;


struct Book* BSnext()//取得下一本书,并将index加1,以便下一次正确访问

return getBookAt(bookShelfIterator.bookShelf,
(3) );

void main()

struct BookShelf bookShelf;
bookShelf.index = 0;
//将书籍上架,省略代码
//将bookShelf与bookShelfIterator相关联
bookShelfIterator.bookShelf = (4) ;
struct Iterator iterator;
iterator.hasNext = BShasNext;
iterator.next = BSnext;
struct Book* b;
while( (5) )//遍历书架,输出书名
b=iterator.next();
printf("%s\n", b->name);

(3)处填()。

[说明]
对多个元素的聚合进行遍历访问时,需要依次推移元素,例如对数组通过递增下标的方式,数组下标功能抽象化、一般化的结果就称为迭代器(Iterator)。模式以下程序模拟将书籍(Book)放到书架(BookShelf)上并依次输出书名。这样就要涉及到遍历整个书架的过程。使用迭代器Iterator实现。图7-1显示了各个类间的关系。以下是JAVA语言实现,能够正确编译通过。
[图7-1]

[C代码]
typedef bool(*fun1)();
typedef (1) (*fun2)();
const int BOOK_MAX = 10;//最大书本数
struct Book
char name30;
;
struct BookShelf//书架
struct Book books[BOOK MAX];
int index;//书架上最后一本书的下标加1,即下一本书的下标,如0表示有0本书
;
Struct Book* getBookAt(struct BookShelf *BS, int index)
//从书架BS上取得下标为index的书
//只有当下标大于等于0且不大于当前书架上的最后一本书对应的下标,才取书成功:
//否则失败,返回NULL

if(index >= 0 && (2) )
return &BS->books[index];

return NULL;

bool appendBook(struct BookShelf *BS, struct Book book)

if(BS->index < BOOK_MAX)
BS->books[BS->index++] = book;
return true;

return false;

int getLength(struct BookShelf *bookShelf)

return bookShelf->index;

struct Iterator//迭代器
fun1 hasNext;//判断是否还有下一个元素
fun2 next;//取得下一个元素
;
struct BookshelfIteratorf//书架迭代器
int index;
struet BookShelf* bookShelf;
bookShelfIterator = 0, NULL;
bool BShasNext()//判断是否还有下一本书

if(bookShelfIterator.index
return true;
else
return false;


struct Book* BSnext()//取得下一本书,并将index加1,以便下一次正确访问

return getBookAt(bookShelfIterator.bookShelf,
(3) );

void main()

struct BookShelf bookShelf;
bookShelf.index = 0;
//将书籍上架,省略代码
//将bookShelf与bookShelfIterator相关联
bookShelfIterator.bookShelf = (4) ;
struct Iterator iterator;
iterator.hasNext = BShasNext;
iterator.next = BSnext;
struct Book* b;
while( (5) )//遍历书架,输出书名
b=iterator.next();
printf("%s\n", b->name);

手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
收藏 - 刷刷题收藏
举报
参考答案:
举一反三

【单选题】一般化学烧伤后的紧急处理措施是()

A.
大量清水冲洗
B.
创面用碘伏涂药
C.
创面用中和剂处理
D.
使用解毒剂
E.
镇痛

【多选题】单笔受理金额大于等于100万元的高额收入审核权限()

A.
分公司业务支撑中心、财务共享中心分部
B.
市场部
C.
财务管理部
D.
省公司业务支撑中心、省市场部、省财务共享中心、省财务管理部
相关题目:
【单选题】一般化学烧伤后的紧急处理措施是()
A.
大量清水冲洗
B.
创面用碘伏涂药
C.
创面用中和剂处理
D.
使用解毒剂
E.
镇痛
【多选题】单笔受理金额大于等于100万元的高额收入审核权限()
A.
分公司业务支撑中心、财务共享中心分部
B.
市场部
C.
财务管理部
D.
省公司业务支撑中心、省市场部、省财务共享中心、省财务管理部
刷刷题-刷题-导入试题 - 刷刷题
参考解析:
AI解析
重新生成
题目纠错 0
发布
刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-刷题-导入试题 - 刷刷题
刷刷题-单词鸭