数据结构习题参考.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构习题参考 1.使用模板类。先阅读《模板类快速入门指南》 2.一般的简单情况,直接实例化模板类就可以。例如 linkListint a; 3.有一些数据结构要求使用模板里没有提供的函数接口。一般做法是从模板类中派生一个具体的类出来。如参考答案 class Mylist: public linkListint { public: }; Mylist 的其它地方和一般的类完全没有区别。 linkListint就可以当成一个具体的一般类看待。使用的时候,非常简单: Mylist a; 理论习题 2 #include ../../SourceCode/arrayList.h// 引入 arrayList.h,使用了相对路径 当前目录是 .vcxproj 文件所在的目录, ..表示上一级目录。 ../../SourceCode/ 表示上级上级目录下的 SourceCode目录。 注本题参考答案并没有用上递增的条件。可以进一步优化 #include ../../SourceCode/linkList.h #include ../../SourceCode/linkList_pro.h 此处 linkList_pro.h 是一个新的类,有一个高级功能 一个类一对文件: .h 以及 .cpp 1 / 6 如 Mylist 类分别在 Mylist.h 中定义,在中实现 class Mylist: public linkListint { public: Mylist() { } 遍历指针 ,使用两个指针来遍历 void Run(int mi, int ma); }; 这个比较简单做法, linkListint完全被当成一个普通类来看待。 Mylist 实现的是一般性的做法。通过用前驱 cursorPrev,和当前指针 cursor 来遍历,这个做法必须熟练掌握。 Mylist_pro 是一个非常高级的做法。使用一个迭代器。其中技巧,需要仔细体会。 5. char ch; 字符 :(ch= ’a’ ch= ’z’) || (ch= ’A’ ch= ’Z’) 数字 :ch= ’0’ ch= ’9’ 6. 注意考虑没有 k 个元素可删的情况 7. 使用 linkList_pro 会比较简单,一边遍历一边删除其中的结点 2 / 6 8,9 同时遍历两个线性表 的伪码: int ia=0,ib=0; for(; iala.length(); ia++) { int a,b; a = la. getValue(ia); b = lb. getValue(ib); while(iblb.length() ba) { lb++; b = lb. getValue(ib); } if(a==b){ lb++; // } } 实验题 1. 3 / 6 一个类一对文件 studentInfo ,Mylist , Mylist_master studentInfo 是学生类 / 结构体。 需要重载输出 ,这个运算符重载在 void arrayListT :: print() const 里要用 到 Mylist 直接从 arrayListStudentInfo派生而来 一般做法:几个排序就几个函数 class Mylist: public arrayListStudentInfo { public: Mylist(int size): arrayListStudentInfo(size){} public: void sort_by_age(); void sort_by_height(); }; 需要实现的函数都放在 Mylist 中 Mylist_master 使用了比较高级的技巧 排序的时候传入了一个函数指针 排序函数里关键一步是 比较运算,比较的时候传入的就是这个函数指针 首先定义函数类型 // 定义函数指针类型 CompareFunction,注意定义格式 4 / 6 typedef bool CompareFunction(struct StudentInfo , struct StudentInfo ); 表示的是类似 bool CompareFunction(struct StudentInfo , struct StudentInfo ) { } 这样的比较函数 void Mylist_master::sort(CompareFunction fun)// 传入函数指针 传入函数指针 fun,比较的时候用法 if(fun(aList[j], aList[j-1]))// 此处的比较调用了函数 原来的写法是 if(aList[j]aList[j-1]),注意比较 fun(,)和写法的差异。前者通用性更大,完全可以让用户自由定

文档评论(0)

183****6506 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档