- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
什么是数据结构 抽象数据类型及面向对象概念 数据结构的抽象层次 用C++描述面向对象程序 算法定义 模板 性能分析与度量 “学生”表格 “课程”表格 “选课单”包含如下信息 学号 课程编号 成绩 时间 学生选课系统中实体构成的网状关系 UNIX文件系统的系统结构图 数据(data) 数据是信息的载体,是描述客观事物的数字、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。 数值性数据 非数值性数据 数据对象 (data object) 数据的子集。具有相同性质的数据成员(数据元素)的集合。 整数数据对象 N = { 0, ?1, ?2, … } 什么是数据结构 N 个网点之间的连通关系 抽象数据类型及面向对象概念 数据类型 定义:一组性质相同的值的集合, 以及定义于这个值集合上的一组操作的总称. C语言中的数据类型 char int float double void 字符型 整型 浮点型 双精度型 无值 抽象数据类型 (ADT: Abstract Data Types) 由用户定义,用以表示应用问题的数据模型 由基本的数据类型组成, 并包括一组相关的服务(或称操作) 信息隐蔽和数据封装,使用与实现相分离 自然数的抽象数据类型定义 ADT NaturalNumber is objects: 一个整数的有序子集合,它开始于0,结束 于机器能表示的最大整数(MaxInt)。 Function: 对于所有的 x, y ? NaturalNumber; False, True ? Boolean, +、-、、 ==、=等都是可用的服务。 Zero( ) : NaturalNumber 返回自然数0 。 IsZero(x) : if (x==0) 返回True Boolean else 返回False Add (x, y) : if (x+y=MaxInt)返回 x+y NaturalNumber else 返回MaxInt Subtract (x, y) : if (x y) 返回 0 NaturalNumber else 返回 x - y Equal (x, y) : if (x==y) 返回True Boolean else 返回 False Successor (x) : if (x==MaxInt) 返回 x NaturalNumber else 返回 x+1 end NaturalNumber 继承 派生类:四边形,三角形,… 子类 特化类(特殊化类) 基类:多边形 父类 泛化类(一般化类) 通信 消息传递 数据结构的抽象层次 线性结构 直接存取类 数组, 文件 顺序存取类 表, 栈, 队列, 优先队列 广义索引类 线性索引, 搜索树 非线性结构 层次结构类 树,二叉树,堆 群结构类 集合,图 线性结构 堆结构 群聚类 用C++描述面向对象程序 C++的函数特征 C++的数据声明 C++的作用域 C++的类 C++的对象 C++的输入/输出 C++的函数 C++的参数传递 C++的函数名重载和操作符重载 C++的动态存储分配 友元(friend)函数 内联(inline)函数 结构(struct)与类 联合(Union)与类 算法定义 定义:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列 特性: 输入 有0个或多个输入 输出 有一个或多个输出(处理结果) 确定性 每步定义都是确切、无歧义的 有穷性 算法应在执行有穷步后结束 有效性 每一条运算应可行 事例学习:选择排序问题 明确问题:递增排序 解决方案:逐个选择最小数据 算法框架: for ( int i = 0; i n-1; i++ ) { //n-1趟 从a[i]检查到a[n
文档评论(0)