为了能到远方,脚下的每一步都不能少.|

lgc202

园龄:8年10个月粉丝:61关注:12

05 2017 档案

第十六课、顺序存储结构的抽象实现----------狄泰软件学院
摘要:一、课程目标 1、完成顺序存储结构的抽象实现,既然是抽象实现,自然就是抽象类,不能生成对象 (1)、抽象类模板,存储空间的位置和大小由子类完成 (2)、这里只实现顺序存储结构的关键操作(增、删、查等) (3)、提供数组操作符,方便快速获取元素(要提供const版本的,方便const对象调用) 二、具
578
0
0
第十五课、线性表的顺序存储结构--------------狄泰软件学院
摘要:一、顺序存储结构的定义 1、线性表的存储结构指的是用一段地址连续的存储单元依次存储线性表中的数据元素 二、设计线性表存储结构的思路 1、可以用一维表来实现顺序存储结构 (1)、存储空间:T* m_array; (2)、当前长度:int m_length 三、顺序存储结构的元素获取操作 (1)、判断目
425
0
0
第十四课、线性表的本质和操作-----------------狄泰软件学院
摘要:一、线性表(List)的表现形式 1、零个或者多个数据元素组成的集合 2、数据元素在位置上是有序排列的 3、数据元素的个数是有限的 4、数据元素的类型必须相同 二、线性表(List)的抽象定义 1、线性表是具有相同类型的n(>=0)个数据元素的有限序列 {a0,a1,a2,....an-1} ai是
453
0
0
第十三课、类族的结构进化-------------------狄泰软件学院
摘要:一、遵循经典设计原则 DTLib中的所有类位于单一继承树 IvalidOperationEXception是新增的异常类,描述某些成员函数在状态不对的时候被抛出 二、改进的关键点 1、EXception类继承自Object类:堆空间中创建异常对象失败时,返回NULL指针,用的是自己的new版本 更改
632
0
0
第十二课、顶层父类的创建------------狄泰软件学院
摘要:一、当代软件架构实践中的经验 1、尽量使用单继承的方式进行系统设计(单继承+多个接口的方式) 2、尽量保持系统中只存在单一继承树(创建一个顶层的抽象父类) 3、尽量使用组合关系代替继承关系(后面会讲) 不幸的事实 (1)、c++语言的灵活性使得代码中可以存放多个继承树 (2)、c++编译器的差异使得
528
0
0
第十一课、异常类的构建-------------狄泰软件学院
摘要:一、自定义异常类 1、异常的类型可以是自定义的类类型 2、对于类类型的匹配依旧是之上而下的严格匹配 3、赋值兼容性原则在异常匹配中依然适用 所以要 (1)、匹配子类异常的catch放在上部 (2)、匹配父类异常的catch放在下部 4、异常类是数据结构所依赖的“基础设施”(现代c++库也必然包含充要
639
0
0
第九课、智能指针示例------狄泰软件学院
摘要:一、内存泄漏(臭名昭著的bug) (1)、动态申请堆空间,用完后不归还 (2)、c++语言中没有垃圾回收机制 (3)、指针无法控制所指向的堆空间生命周期(如局部指针生命周期结束了堆空间的生命周期还未结束) 二、智能指针 1、当代c++平台的智能指针 (1)、指针生命周期结束时主动释放堆空间 (2)、
405
0
0
第八课、泛型编程简介
摘要:一、数据结构的特点 1、专注于数据元素之间的关系 2、专注于特定结构之上的算法(如针对数组结构我们可以设计排序算法等等) 注:数据结构课程并不关心数据元素的具体类型 二、为学习数据结构选择合适的语言 1、由于数据结构并不关心具体的数据类型,故支持泛型编程的语言最适合和数据结构课程的学习 三、泛型编程
423
0
0
第六课、算法效率的度量
摘要:一、常见的时间复杂度 常见时间复杂度的比较 二、算法分析 定义一个数组 此算法最好的情况时执行一次 而最坏的情况却要执行n次 注意:数据结构课程中,在没有特殊说明时,所分析算法的时间复杂度都是指最坏时间复杂度 三、算法的空间复杂度(space complexity) (1)、定义:S(n) = S(
710
0
0
第四课、程序灵魂的审判
摘要:一、程序的性价比(效率)的审判方法 1、事后统计法:比较不同算法对同一组输入数据的运行处理时间 缺陷 (1)、为了获得不同算法的运行时间必须编写相应的代码 (2)、运行时间严重依赖硬件以及运行时的环境因素(因此不太准确) (3)、算法的测试数据选取相当困难 2、事前分析估算:依据统计的方法对算法效率
296
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起