- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CH1 绪论1
学科地位:《数据结构》是软件工程学科的核心课程,是一门综合性的专业技术基础课。 学科目的: 掌握各类基本数据结构类型、提高阅读、编写算法的能力、能针对给定问题,选择相适应的数据结构,并能设计和分析算法。 先修课程:C程序设计 上课认真听课,记笔记,课后按时独立完成作业。 理论、习题、上机紧密结合。 成绩评定: 平时20%+实验20%+期末考试60% 一、计算机解决问题的步骤 问题?(分析)?(数学)模型?(技巧)?算法?(语言)?程序?调试、运行 例一、书目自动检索系统 例二、人机对奕问题 设某田径比赛共有六个比赛项目,规定每个选手至多可参加三个项目,有五人报名参加比赛(如下表所示)。设计比赛日程表,使得比赛能在尽可能短的时间内完成。 (1)设用如下六个不同的代号代表不同的项目: 跳高 跳远 标枪 铅球 100米 200米 A B C D E F (2)用顶点代表比赛项目 (3)在不能同时进行比赛的顶点之间连上一条边 (同一选手参加的项目之间必定有边相连) (4)给顶点涂色:任何有边相连的顶点不能涂 同一种颜色,且使涂色数目尽量少 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。 例1 (1) begin (2) n=1 (3) n=n+1 (4) repeat (3) (5) end 例2 (1) begin (2) n=1 (3) n=n+1 (4) if n=100 do (5),else repeat(3) (5) output n (6) end 语句频度 语句重复执行的次数 时间复杂度 设算法中所有语句的语句频度为t(n) f(n)是当n趋向无穷大时与t(n)的同阶无穷大 则算法的时间复杂度T (n) = O(f(n)) 其中:n为算法的运算规模 f(n)是运算时间随n增大时的增长率 O(f(n))是算法时间特性的量度 第一章内容到此结束… 二、数据类型 在用高级程序语言编写的程序 中,必须对程序中出现的每个变量、 常量或表达式,明确说明它们所 属的数据类型。 例如,C 语言中提供的基本数据类型有: 整型 int 浮点型 float 字符型 char 逻辑型 bool ( C++语言) 双精度型 double 实型( C++语言) 数据类型 是一个 值的集合 和定义在此集合上的 一组操作 的总称。 不同类型的变量,其所能取的值的范围不同,所能进行的操作不同。 三、抽象数据类型 (Abstract Data Type 简称ADT) 是指一个数学模型以及定义在此数学模型上的一组操作。 例如,定义抽象数据类型“复数” 数据对象: D={e1,e2|e1,e2∈RealSet } 数据关系: R1={e1,e2 | e1是复数的实数部分, | e2 是复数的虚数部分 } ADT Complex { 基本操作: AssignComplex( Z, v1, v2 ) 操作结果:构造复数 Z,其实部和虚部 分别被赋以参数 v1 和 v2 的值。 DestroyComplex( Z) 操作结果:复数Z被销毁。 GetReal( Z, realPart ) 初始条件:复数已存在。 操作结果:用realPart返回复数Z的实部值。 GetImag( Z, ImagPart ) 初始条件:复数已存在。 操作结果:用ImagPart返回复数Z的虚部值。 Add( z1,z2, sum ) 初始条件:z1, z2是复数。 操作结果:用sum返回两个复数z1, z2 的 和值。 } ADT Complex 假设:z1和z2是上述定义的复数 则 Add(z1, z2, z3) 操作的结果 z3 = z1 + z2 即为: 抽象数据类型的描述方法 抽象数据类型可用(D,S,P)三元组表示 其中,D 是数据对象, S 是 D 上的关系集, P 是对 D 的基本操作集。 ADT 抽象数据类型名 {
文档评论(0)