数据结构与算法设计PPT (2).pdf
《数据结构与算法设计PPT (2).pdf》由会员分享,可在线阅读,更多相关《数据结构与算法设计PPT (2).pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 绪论1.3 抽象数据类型及其表示定义:一组性质相同的值的集合,以及定义于这个值集合上的一组操作的总称.-数据类型中值的特征-数据在存储器中的编码形式-存储空间的大小和值的范围-对数据可以进行的运算种类基本数据类型int x=100,y=200;int z1=x+y;int z2=x*y;int z3=x%y;C语言中的数据类型char int float double void字符型 整型 浮点型 双精度型 无值int x x可以进行多少种运算?基本数据类型 高级语言的数据类型使我们编写代码时不必考虑每一种数据在计算机内部的表示细节和运算的实现细节 可以直接按照数据类型的外部抽象数据特
2、征来使用数据,方便了程序设计 信息封装是计算机硬件系统和软件系统中使用的基本原则,信息封装可以简化用户对概念的理解。用户在使用数据类型时,可以不必了解内部的实现细节。基本数据类型 复合数据类型是由基本数据类型组合而成的数据类型.复合数据类型本身又可以参与定义结构更为复杂的数据元素类型 数据元素的类型不限于基本数据类型,也可以根据应用需要灵活进行定义数据元素的类型:复合数据类型class studentstring number;string name;date birthday;int class;int grade;string colleage;string major;public:st
3、udent();void set();void modify();void display()const;student();数据元素的类型:复合数据类型class studentstring number;string name;date birthday;int class;int grade;string colleage;string major;public:student();void set();void modify();void display()const;student();抽象:简化问题,忽略非本质问题,目的是隐藏实现细节和内部数据结构,提高复用的力度和粒度 用户定义,
4、用以表示应用问题的数据模型 由基本的数据类型组成,并包括一组相关的服务(或称操作)信息隐蔽和数据封装,使用与实现相分离抽象数据类型(ADTs:Abstract Data Types)数据类型的定义只涉及数据模型的逻辑特征,不涉及该模型的具体实现细节 不管内部采用什么技术方法来实现这个抽象数据类型,只要模型的数学特性不变,都不会影响它的外部使用。抽象的目的就是让人们集中精力把握问题的实质,研究解决问题的算法核心,抛开繁复的实现细节,从而使得问题得到简化 抽象可以按照一定的层次逐步提高,抽象的程度,层次越高细节就越少,使用就越方便。抽象数据类型(ADTs:Abstract Data Types)抽
5、抽象象数数据据类类型型查找插入删除修改学 生 记 录 由三元组表示ADT抽象数据类型名数据对象D数据关系S数据操作P 用数学方法定义对象集合和运算集合,仅通过运算的性质刻画数据对象,独立于计算机中的可能的表示方法 本课程中用C的template表示抽象数据类型 模板重点描述数据元素之间的关系、存储方式和对数据的操作ADT的格式template class dataList private:Type*Element;int ArraySize;void Swap(const int m1,const int m2);int MaxKey(const int low,const int high)
6、;模板参数为数据表中元素的类型数据表模板类的定义定义数据结构的取值类型和取值空间定义数据结构存储方式public:dataList(int size=10):ArraySize(size),Element(new Type Size)dataList()delete Element;void Sort();friend ostream&operator (ostream&outStream,const datalist&outList);friend istream&operator (istream&inStream,const datalist&inList);#endif定义对数据的操作
7、 模板重点描述数据元素之间的关系、存储方式和对数据的操作 只是一种概念类型,不能进行编译 抽象数据类型只有实现之后才能被使用 实现过程要设计存储结构、编写实现源程序 是使用者和编程者之间的约定形式ADT形式化说明本课程中编程使用的本课程中编程使用的C+C+技术技术动态存储分配动态存储分配深复制和浅复制深复制和浅复制模板模板STLSTLC C中中malloc()malloc()和和free()free()C+C+中中newnew和和deletedeletenewnew按指定类型自动分配足够的空间按指定类型自动分配足够的空间newnew自动返回指定类型的指针自动返回指定类型的指针newnew和和d
8、eletedelete可以重载可以重载动态存储空间的管理需要注意的问题动态存储空间的管理需要注意的问题C+C+没有垃圾收集机制,不再使用的动态存储没有垃圾收集机制,不再使用的动态存储空间一定要由程序员采用空间一定要由程序员采用deletedelete方式回收方式回收C+C+的动态存储分配的动态存储分配例例1 1:int*int*ip ip=new int;=new int;if(if(ip ip=0)=0)cerrcerr “Memory not allocated”“Memory not allocated”endlendl;例例2 2:point*p=new point 100;point
9、*p=new point 100;delete delete p;p;C+的动态存储分配deletedelete的指针只能是的指针只能是newnew申请到的申请到的如果是数组,必须用如果是数组,必须用delete delete 删除删除深复制和浅复制I内部数据:蕴含在结构之中,例如:内部数据:蕴含在结构之中,例如:class Teacherclass Teacher string*string*firstnamefirstname;string*string*lastnamelastname;int int employeeNumemployeeNum;I外部数据:位于结构之外,通过指针加以访
10、问外部数据:位于结构之外,通过指针加以访问默认复制是复制指针而不是指针指向的数据默认复制是复制指针而不是指针指向的数据n浅复制:指针的复制浅复制:指针的复制n深复制:复制指针所指向的数值深复制:复制指针所指向的数值需要重载复制运算符需要重载复制运算符String*fiirstnameString*lastnameint employeeNum模板(模板(TemplateTemplate)I模板:允许编写对任意类型均有效的函数例程,模板:允许编写对任意类型均有效的函数例程,而无需知道具体的类型而无需知道具体的类型I模板分类:函数模板模板分类:函数模板类模板类模板I模板的使用:模板的使用:在编写与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构与算法设计PPT 2 数据结构 算法 设计 PPT
限制150内