Always keep a begi|

lgc202

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

随笔分类 -  数据结构实战开发教程

第十八课、顺序存储链表的分析
摘要:1、效率分析 2、长度相同的的两个SeqList,插入和删除操作平均耗时并不相同 原因:如插入操作 假设一个顺序表里面的元素为int型,一个为string,插入过程中涉及到元素的拷贝,字符串的拷贝过程比int型的拷贝过程耗时 3、以下代码是否正确? 答案是否定的,两个指针指向了同一片内存,意味着析构
12
0
0
第十七课、StaticList和DynamicList
摘要:1、StaticList设计要点 -类模板:(1)、使用原生数组作为顺序存储结构 (2)、使用模板参数指定数组大小 #ifndef STATICLIST_H #define STATICLIST_H #include "SeqList.h" namespace DTLib { /* *StaticL
10
0
0
第十六课、顺序存储结构的抽象实现----------狄泰软件学院
摘要:一、课程目标 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、由于数据结构并不关心具体的数据类型,故支持泛型编程的语言最适合和数据结构课程的学习 三、泛型编程
422
0
0
第六课、算法效率的度量
摘要:一、常见的时间复杂度 常见时间复杂度的比较 二、算法分析 定义一个数组 此算法最好的情况时执行一次 而最坏的情况却要执行n次 注意:数据结构课程中,在没有特殊说明时,所分析算法的时间复杂度都是指最坏时间复杂度 三、算法的空间复杂度(space complexity) (1)、定义:S(n) = S(
710
0
0
第四课、程序灵魂的审判
摘要:一、程序的性价比(效率)的审判方法 1、事后统计法:比较不同算法对同一组输入数据的运行处理时间 缺陷 (1)、为了获得不同算法的运行时间必须编写相应的代码 (2)、运行时间严重依赖硬件以及运行时的环境因素(因此不太准确) (3)、算法的测试数据选取相当困难 2、事前分析估算:依据统计的方法对算法效率
296
0
0
第三课、初识程序的灵魂------------------------狄泰软件学院
摘要:一、初识程序的灵魂 1、数据结构静态描述了数据元素之间的关系 2、高效的程序需要在数据结构的基础上设计和选择算法 高效的程序需要: (1)、恰当的数据结构 (2)、合适的算法 3、算法是特定问题求解步骤的描述,在计算机中表现为指令的有限序列 (1)、算法是独立存在的一种解决问题的方法和思想 (2)、
218
0
0
第二课、数据的艺术---------------------狄泰软件学院
摘要:一、数据的艺术 1、程序设计的挑战 (1)、利用计算机解决实际生活中的问题 (2)、生活中的不同个体间存在联系 (3)、用计算机程序描述生活中个体间的联系 2、数据的概念 (1)、程序操作的对象,用于描述客观事物 3、数据的特点 (1)、可以输入到计算机 (2)、可以被计算机程序处理 4、数据中的新
433
1
0
第一课、进阶高手的大门--------------------狄泰软件学院
摘要:一、进阶高手的大门 1、理解程序的本质 (1)、程序是为了解决实际问题而存在的 (2)、从本质上上而言,程序是解决问题步骤的描述 2、一小步的进阶:理解实际问题 (1)、确认问题类型:如:数值计算,求最小值个数 (2)、确认求解步骤:如:打开文件,读数据,关闭文件,计算和 3、程序评鉴初探(同一个问
322
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起