随笔分类 -  编程语言及数据结构 / 数据结构

摘要:到目前为止,我们还无法创建一个顺序存储结构线性表的对象出来,为什么呢?顺序存储空间究竟是什么,顺序存储空间的大小是多少? StaticList设计要点——类模板 使用原生数组作为顺序存储空间 使用模板参数决定数组大小 StaticList.h 测试main.cpp 实验二: 这个地方抛出了一个异常, 阅读全文
posted @ 2019-12-15 23:58 一代枭雄 阅读(448) 评论(1) 推荐(0)
摘要:完成顺序存储结构线性表的抽象实现 在SeqList中的关键操作都已经实现了,但它还是一个抽象类,为什么呢?顺序存储空间的指定并没有在SeqList中完成,由StaticList和DynamicList这两个子类中完成。 SeqList设计要点——抽象类模板,存储空间的位置和大小由子类完成——实现顺序 阅读全文
posted @ 2019-12-15 22:50 一代枭雄 阅读(289) 评论(0) 推荐(0)
摘要:顺序存储的定义线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表中的数据元素。 在C++中的表现是什么样子的呢?可以考虑用一个数组,一个固定大小的数组来作为存储介质存储线性表中的元素。 如何用C++里面的原生数组实现一个线性表。原生数组符合顺序存储的定义 设计思路——可以用一维数组来 阅读全文
posted @ 2019-12-15 20:30 一代枭雄 阅读(337) 评论(0) 推荐(0)
摘要:线性表(List)的表现形式——零个或多个数据元素组成的集合——数据元素在位置上是有序排列的——数据元素的个数是有限的——数据元素的类型必须相同 线性表的一些常用操作——将元素插入线性表——将元素从线性表中删除——获取目标位置处元素的值——设置目标位置处元素的值——获取线性表的长度——清空线性表 线 阅读全文
posted @ 2019-12-15 19:18 一代枭雄 阅读(233) 评论(0) 推荐(0)
摘要:遵循经典设计准则——DTLib中的所有类位于单一的继承树中 Object这个顶层父类定义了动态内存申请时的行为,当动态内存申请失败时,直接返回空指针,并不会抛出异常。所以说DTLib中的每一个类,在动态内存申请结束时一定要判断是不是空指针 为什么要增加InvalidOperationExceptio 阅读全文
posted @ 2019-12-15 18:37 一代枭雄 阅读(202) 评论(0) 推荐(0)
摘要:创建一个可复用的数据结构类库可复用:就是在不同的工程里面可以使用这门课创建的数据结构库,在不同的编译器、不同的工程里使用DTLib都是可以的。当代软件架构实践中的经验——尽量使用单重继承的方式进行系统设计 (单重继承+多接口)——尽量保持系统中只存在单一的继承树 (在当代的软件架构中是如何来保证呢? 阅读全文
posted @ 2019-12-15 11:49 一代枭雄 阅读(303) 评论(0) 推荐(0)
摘要:1.Exception.h 中增加ArithmetricException类 2.Exception.h 中增加NullPointerException类 3.Exception.h 中增加IndexOutOfBoundsException类 4.Exception.h 中增加NoEnoughMem 阅读全文
posted @ 2019-12-13 23:56 一代枭雄 阅读(302) 评论(0) 推荐(0)
摘要:异常类构建异常的类型可以是自定义类类型对于类类型异常的匹配依旧是从上到下严格的匹配赋值兼容性原则在异常匹配中依然适用一般而言-匹配子类异常的catch放在上部-匹配父类异常的catch放在下部 现代C++库必然包含充要的异常类族异常类是数据结构类所依赖的基础设施 Exception是一个抽象类,不能 阅读全文
posted @ 2019-12-13 23:41 一代枭雄 阅读(972) 评论(0) 推荐(0)
摘要:智能指针实际上就是通过模板技术实现的一个类 内存泄露(臭名昭著的Bug)——在软件开发和测试阶段都不容易被发现-动态申请堆空间,用完后不归还-C++语言中没有垃圾回收的机制-指针无法控制所指堆空间的生命周期 当代C++软件平台中的智能指针-指针生命周期结束时主动释放堆空间-一片堆空间最多只能由一个指 阅读全文
posted @ 2019-12-12 22:16 一代枭雄 阅读(498) 评论(0) 推荐(0)
摘要:数据结构课程的特点-专注于数据元素之间的关系-专注于特定结构之上的算法 数据结构课程并不关注数据元素的具体类型。 泛型编程的概念-不考虑具体数据类型的编程方式对于Swap函数可以考虑下面的泛型写法 void Swap(T& a, T& b) { T t = a; a = b; b = t; } Sw 阅读全文
posted @ 2019-12-12 21:23 一代枭雄 阅读(283) 评论(0) 推荐(0)
摘要:算法的最好与最坏情况意义:当算法在最坏情况下仍然能满足需求时,可以推断,算法的最好情况和平均情况都满足需求。注意:在数据结构课程中,在没有特殊说明时,所分析算法的时间复杂度都是指最坏时间复杂度。 算法的空间复杂度(Space Complexity)-定义:S(n) = S(f(n)) .n 为算法的 阅读全文
posted @ 2019-11-17 22:16 一代枭雄 阅读(247) 评论(0) 推荐(0)
摘要:判断一个算法的效率时,操作数量中的常数项和其他次要项常常可以忽略,只需要关注最高阶项就能得出结论。(这只是定性的比较)问题:如何用符号定性的判断算法的效率? 算法的复杂度-时间复杂度 算法运行后对时间需求量的定性描述-空间复杂度 算法运行后对空间需求量的定性描述 注意:数据结构课程重点关注的是算法的 阅读全文
posted @ 2019-11-17 21:04 一代枭雄 阅读(395) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-02-14 22:38 一代枭雄 阅读(49) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-02-14 20:24 一代枭雄 阅读(107) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-01-31 23:09 一代枭雄 阅读(576) 评论(0) 推荐(0)