数据结构与算法分析-PPT.ppt





《数据结构与算法分析-PPT.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法分析-PPT.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1主讲:朱立华副教授南邮计算机学院E_mail: 2教材:1、数据结构部分:数据结构用C+语言描述,陈慧南主编,南大学出版社2、算法分析与设计部分:计算机算法设计与分析,王晓东编著,电子工业出版社课时安排:第一次面授:数据结构第一章到第五章第二次面授:数据结构第六章到第十章第三次面授:算法分析第二章到第七章(部分)考试时间及方式:第三次面授最后半天,复习加考试,开卷。3 第一章第一章 绪论绪论1.1 1.1 什么是数据结构什么是数据结构1.2 1.2 数据抽象和抽象数据抽象和抽象 数据类型数据类型 1.3 1.3 面向对象程序设计面向对象程序设计1.4 C+1.4 C+程序设计程序设计1.5
2、1.5 数据结构的描述数据结构的描述1.6 1.6 算法及其性能分析算法及其性能分析内容提要:内容提要:内容提要:内容提要:1 1给出数据结构的概念2 2介绍抽象数据类型和面向对 象的基本概念3 3回顾C+语言的基本特征4 4说明数据结构的描述方法5 5介绍算法和算法分析的基本 方法第一章第一章 绪论绪论 4 第一章第一章 绪论绪论 1.1 1.1 什么是数据结构什么是数据结构 1.2 1.2 数据抽象和抽象数据抽象和抽象 数据类型数据类型 1.3 1.3 面向对象程序设计面向对象程序设计 1.4 C+1.4 C+程序设计程序设计 1.5 1.5 数据结构的描述数据结构的描述 1.6 1.6
3、算法及其性能分析算法及其性能分析1.1 1.1 什么是数据结构什么是数据结构 在程序设计时就已经遇到过。在程序设计时就已经遇到过。一维数组是一个数据结构一维数组是一个数据结构 例如:一维数组例如:一维数组A=A=(a a1 1,a,a2 2,a,a3 3,a,a4 4)int a4;int a4;/定义并创建一维整型 /数组(a0,a1,a2,a3)x=a2;x=a2;/读数组元素a2的值 a2=x;a2=x;/置a2的值为x 数据结构由数据元素依某种逻辑关数据结构由数据元素依某种逻辑关系组织起来,在数据结构上需要定义系组织起来,在数据结构上需要定义一组操作(运算)。一组操作(运算)。1、数据
4、结构学科的定义:主要是为研究和解决如何使用计算机处理非数值问题而产生的理论、技术和方法。5 1.1.数据:数据:数据:数据:是信息的载体是信息的载体,是是计算机加工处理的对象.2.2.数值数据和非数值数据数值数据和非数值数据数值数据和非数值数据数值数据和非数值数据(1)数值数据:包括整数、实数或复数。主要用于工程计算、科学计算。(2)非数值数据:包括字符、文字、图形、图象、语音等。用于情报检索、企业管理、图形图象、人工智能、远程教育、远程医疗、电子商务、电子图书馆和办公自动化等诸多领域。3.3.数据元素:数据元素:数据元素:数据元素:组成数据的基本单位。第一章第一章 绪论绪论 1.1 1.1
5、什么是数据结构什么是数据结构 一、数据和数据元素一、数据和数据元素 二、什么是数据结构二、什么是数据结构一、数据和数据元素一、数据和数据元素 6例如:一维数组例如:一维数组A=A=(a a1 1,a,a2 2,a,a3 3,a,a4 4)(1)(1)数据元素间的逻辑关系:数据元素间的逻辑关系:B=B=(D D,R R)其中,D是数据元素的有限集合,R是D上关系的有限集合。本书中一般只考虑R包含一个关系的情况,即R=r。D=a1,a2,a3,a4 r=,R=r 第一章第一章 绪论绪论 1.1 1.1 什么是数据结构什么是数据结构 一、数据和数据元素一、数据和数据元素 二、什么是数据结构二、什么是
6、数据结构 1.1.数据结构举例数据结构举例(1 1)数据元素之间的)数据元素之间的 逻辑关系逻辑关系二、什么是数据结构二、什么是数据结构 1.1.数据结构举例数据结构举例 7 1.1 1.1 什么是数据结构什么是数据结构 一、数据和数据元素一、数据和数据元素 二、什么是数据结构二、什么是数据结构 1.1.数据结构举例数据结构举例(1 1)数据元素之间的)数据元素之间的 逻辑关系逻辑关系(2 2)数据在计算机内)数据在计算机内 的表示的表示(2)(2)数据在计算机内的表示数据在计算机内的表示例如:一维数组例如:一维数组A=A=(a a1 1,a,a2 2,a,a3 3,a,a4 4)8Creat
7、e():建立一个数组。Retrieve(i):返回下标为i的元素值。Store(i,x):将下标为i的数据元素 的值置为x。1.1 1.1 什么是数据结构什么是数据结构 一、数据和数据元素一、数据和数据元素 二、什么是数据结构二、什么是数据结构 1.1.数据结构举例数据结构举例(1 1)数据元素之间的)数据元素之间的 逻辑关系逻辑关系(2 2)数据在计算机内)数据在计算机内 的表示的表示(3 3)运算的定义和算法)运算的定义和算法(3)(3)运算的定义和算法运算的定义和算法例如:int a4;/定义一个一维整型数组 /(a0,a1,a2,a3)x=a2;/读数组元素a2的值 a2=x;/置a2
8、的值为x92.42.4种基本的逻辑结构种基本的逻辑结构 集合结构:集合结构:集合结构:集合结构:结构中的数据元素之间除了“同属于一个集合”的关系外,别无其它关系;线性结构:线性结构:线性结构:线性结构:结构中的数据元素之间存在一对一的关系;树形结构:树形结构:树形结构:树形结构:结构中的数据元素之间存在一对多的关系;图结构:图结构:图结构:图结构:结构中的数据元素之间存在多对多的关系。1.1 1.1 什么是数据结构什么是数据结构 一、数据和数据元素一、数据和数据元素 二、什么是数据结构二、什么是数据结构 1.1.数据结构举例数据结构举例 2.42.4种基本的结构关系种基本的结构关系 3.3.什
9、么是数据结构什么是数据结构10 1.1 1.1 什么是数据结构什么是数据结构 一、数据和数据元素一、数据和数据元素 二、什么是数据结构二、什么是数据结构 1.1.数据结构举例数据结构举例 2.4 2.4 种基本的结构关系种基本的结构关系 3.3.什么是数据结构什么是数据结构2.42.4种基本的逻辑结构种基本的逻辑结构11 第一章第一章 绪论绪论1.1 1.1 什么是数据结构什么是数据结构 一、数据和数据元素一、数据和数据元素 二、什么是数据结构二、什么是数据结构 1.1.数据结构举例数据结构举例 2.42.4种基本的结构关系种基本的结构关系 3.3.什么是数据结构什么是数据结构数据结构包括以下
10、四个方面:数据结构包括以下四个方面:(1)数据元素及特性 是数据结构中的最基本信息单元。(2)数据的逻辑结构 对数据元素间的逻辑关系的描述。(3)数据的存储表示(存储结构)数据在计算机内的组织方式。(4)运算的定义和算法 数据结构上执行的运算和实现。3.3.什么是数据结构什么是数据结构12第一章第一章 绪论绪论1.1 1.1 什么是数据结构什么是数据结构1.2 1.2 数据抽象和抽象数据抽象和抽象 数据类型数据类型 1.3 1.3 面向对象程序设计面向对象程序设计1.4 C+1.4 C+程序设计程序设计1.5 1.5 数据结构的描述数据结构的描述1.6 1.6 算法及其性能分析算法及其性能分析
11、1.2 1.2 数据抽象和抽象数据类型数据抽象和抽象数据类型 抽抽 象象 抽取事物的共同的和实质的东西,忽略其非本质的细节。例如,“学生学生”这一概念是对学生群体的抽象,它 抽取了学生这一群体的共性,忽略 了每个学生的特殊性。13 第一章第一章 绪论绪论 1.2 1.2 数据抽象和数据抽象和 抽象数据类型抽象数据类型 一、数据类型一、数据类型 1.C 1.C 语言的数据类型语言的数据类型 二、数据抽象二、数据抽象 三、抽象数据类型三、抽象数据类型一、数据类型一、数据类型 1.C C 语言的数据类型语言的数据类型(1)(1)基本类型:基本类型:字符、整数、枚举、实数、双精度数(2)(2)构造类型
12、:构造类型:数组、结构和联合(3)(3)指针类型:指针指针类型:指针例如,二维整型数组int a35;int a35;定义了一个包含15个整数的二维数组。14 第一章第一章 绪论绪论 1.2 1.2 数据抽象和数据抽象和 抽象数据类型抽象数据类型 一、数据类型一、数据类型 1.C 1.C 语言的数据类型语言的数据类型 二、为什么要研究数二、为什么要研究数 据结构据结构 三、什么是数据结构三、什么是数据结构 又如,结构类型 struct Studentstruct Studentchar*name;char*name;int student_id;int student_id;char grad
13、e;char grade;定义了结构类型Student,包括以下三个域:name,student_id和grade。15 第一章第一章 绪论绪论 1.2 1.2 数据抽象和数据抽象和 抽象数据类型抽象数据类型 一、数据类型一、数据类型 1.C 1.C 语言的数据类型语言的数据类型 2.2.数据类型数据类型 二、数据抽象二、数据抽象 三、抽象数据类型三、抽象数据类型2.数据类型数据类型 一个数据类型定义了一个值的集合以及作用于该值集的操作的集合。例如,int a;int a;变量a a a a 的取值范围是:-3276832767对变量a a a a执行的操作有:算术运算 +、-、*、/、%关系
14、运算 、=、=、!=赋值运算 =16 第一章第一章 绪论绪论 1.2 1.2 数据抽象和数据抽象和 抽象数据类型抽象数据类型 一、数据类型一、数据类型 二、数据抽象二、数据抽象 三、抽象数据类型三、抽象数据类型二、数据抽象二、数据抽象 数据类型数据类型 是具有相同值集和操作集的数据对象(变量和常量)的抽象。相同的数据类型的变量具有相 同的取值范围,允许执行相同的操作;对变量执行允许的操作,可以不必考虑变量在计算机内的存储细节和这些操作是如何执行的。17 第一章第一章 绪论绪论 1.2 1.2 数据抽象和数据抽象和 抽象数据类型抽象数据类型 一、数据类型一、数据类型 二、数据抽象二、数据抽象 三
15、、抽象数据类型三、抽象数据类型三、抽象数据类型三、抽象数据类型 抽抽 象象 数数 据据 类类 型型(abstract data structure ADT)是一个数据类型,其主要特征是该类型的对象及其操作的规范,与该对象的表示和操作的实现分离,即使用和实现分离,并实行封装和信息隐蔽。18 第一章第一章 绪论绪论 1.2 1.2 数据抽象和数据抽象和 抽象数据类型抽象数据类型 一、数据类型一、数据类型 二、数据抽象二、数据抽象 三、抽象数据类型三、抽象数据类型 例如,int a;int a;整型int int 的规范规范包括变量 a a a a 的取值范围是:-3276832767对变量 a a
16、 a a 执行的操作有:算术运算 +、-、*、/、%关系运算 、=、=、!=赋值运算 =整型int int 的实现实现是指变量 a a 在计算机内存储表示方法。操作的实现实现是指整型上定义的操作的具体实现方法。19 第一章第一章 绪论绪论 1.2 1.2 数据抽象和数据抽象和 抽象数据类型抽象数据类型 一、数据类型一、数据类型 二、数据抽象二、数据抽象 三、抽象数据类型三、抽象数据类型 使使用用和和实实现现分分离离:使用者通过规范使用该类型的数据,而不必考虑其实现细节;改变实现将不影响使用。封封装装和和信信息息隐隐蔽蔽:将数据和代码组合在一起;数据类型的细节对外部是隐蔽的。例如,int a;i
17、nt a;其实现是隐蔽的,使用者只能通过整型上定义的一组运算对变量 a a 执行操作。20 第一章第一章 绪论绪论 1.2 1.2 数据抽象和数据抽象和 抽象数据类型抽象数据类型 一、数据类型一、数据类型 二、数据抽象二、数据抽象 三、抽象数据类型三、抽象数据类型 四、数据结构的规范四、数据结构的规范 和实现和实现数据结构可分成以下两部分:(1)(1)数据结构的规范:数据结构的规范:逻辑结构和运算的定义(2)(2)数据结构的实现:数据结构的实现:存储结构和运算算法实现规范是实现的准则和依据。规范指明“做什么”,实现解决“怎样做”。21第一章第一章 绪论绪论1.1 1.1 什么是数据结构什么是数
18、据结构1.2 1.2 数据抽象和抽象数据抽象和抽象 数据类型数据类型 1.3 1.3 面向对象方法面向对象方法1.4 C+1.4 C+程序设计程序设计1.5 1.5 数据结构的描述数据结构的描述1.6 1.6 算法及其性能分析算法及其性能分析1.3 1.3 面向对象方法面向对象方法 例子,问题的陈述:开发一个非常简单的字处理程序。该系统允许用户产生文档产生文档;所产生的文档存储存储在一个用户目录目录中;用户可以打印打印和显示显示文档;文档可以改变改变,也可以被删除删除。对象对象 服务服务 文档 产生、存储、打印 显示、改变、删除 目录 存储、删除22第一章第一章 绪论绪论1.1 1.1 什么是
19、数据结构什么是数据结构1.2 1.2 数据抽象和抽象数据抽象和抽象 数据类型数据类型 1.3 1.3 面向对象方法面向对象方法1.4 C+1.4 C+程序设计程序设计1.5 1.5 数据结构的描述数据结构的描述1.6 1.6 算法及其性能分析算法及其性能分析1.3 1.3 面向对象方法面向对象方法 对象对象 应用领域内的实体和概念,它们通常是问题陈述中的名词。属性属性 刻划对象的特征。服务或运算服务或运算 施于对象属性的操作,它们通常是问题陈述中的动词。同类对象具有相同的属性和服务。同一个类(class)中的每个对象称为该类的一个实例。23第一章第一章 绪论绪论1.1 1.1 什么是数据结构什
20、么是数据结构1.2 1.2 数据抽象和抽象数据抽象和抽象 数据类型数据类型 1.3 1.3 面向对象方法面向对象方法1.4 C+1.4 C+程序设计程序设计1.5 1.5 数据结构的描述数据结构的描述1.6 1.6 算法及其性能分析算法及其性能分析继承继承 是指派生类(子类)可自动共享基类(父类)的公有的和保护的属性和服务的机制。它是面向对象方法最重要的共享机制,从而减少数据和代码的重复。这也是面向对象方法最有特色的方面。24第一章第一章 绪论绪论1.1 1.1 什么是数据结构什么是数据结构1.2 1.2 数据抽象和抽象数据抽象和抽象 数据类型数据类型 1.3 1.3 面向对象程序设计面向对象
21、程序设计1.4 C+1.4 C+程序设计程序设计1.5 1.5 数据结构的描述数据结构的描述1.6 1.6 算法及其性能分析算法及其性能分析1.4 C+1.4 C+程序设计程序设计 回顾回顾C+C+语言的基本特征语言的基本特征内容提要:内容提要:内容提要:内容提要:1.4.1 函数与参数传递1.4.2 动态存储分配1.4.3 C+类1.4.4 继承和派生类1.4.5 多态性、虚函数和动态联编1.4.6 纯虚函数和抽象类1.4.7 模板25 第一章第一章 绪论绪论1.4 C+1.4 C+程序设计程序设计1.4.1 1.4.1 函数与参数传递函数与参数传递 1.1.传值参数和引用参数传值参数和引用
22、参数 2.2.函数的返回值函数的返回值 3.3.函数原型函数原型1.4.11.4.1函数与参数传递函数与参数传递#include#includeint Abc(int a,int&b)int Abc(int a,int&b)a+;a+;b+;b+;return a+b;return a+b;void main()void main()int int x=3,y=3;x=3,y=3;int z=Abc(x,y);int z=Abc(x,y);rintf rintf(z=%d,y=%dn,z,y);(z=%d,y=%dn,z,y);1.1.传值参数与引用参数传值参数与引用参数(见(见dsapg4.
23、cppdsapg4.cpp)运行结果:z=8,x=3,y=4原因:x 3 a 3 a+a 4y 3 y 4 b b+b26 第一章第一章 绪论绪论1.4 C+1.4 C+程序设计程序设计1.4.1 1.4.1 函数与参数传递函数与参数传递 1.1.传值参数和引用参数传值参数和引用参数 2.2.函数的返回值函数的返回值 3.3.函数原型函数原型常量引用参数:常量引用参数:const int&cconst int&c(见(见dsapg4.cppdsapg4.cpp)#include#includeint Abc(int a,const int&c)int Abc(int a,const int&c
24、)/c+;/c+;若加上,则编译错若加上,则编译错 return a+c;return a+c;void main()void main()int y=3;int y=3;int z=Abc(3,y);int z=Abc(3,y);printf(z=%dn,z);printf(z=%dn,z);运行结果:运行结果:z=6z=627 第一章第一章 绪论绪论1.4 C+1.4 C+程序设计程序设计1.4.1 1.4.1 函数与参数传递函数与参数传递 1.1.传值参数和引用参数传值参数和引用参数 2.2.函数的返回值函数的返回值 3.3.函数原型函数原型函数执行时,函数执行时,(1)(1)传值参数传
25、值参数 实在参数的值赋给了形式参数,形式参数得到了实在参数的一个副本。函数执行后,实在参数的值不会改变。(2)(2)引用参数引用参数 实在参数的地址传给了形式参数。函数执行后,实在参数的值将可能改变。常量引用参数常量引用参数 函数不得修改该引用参数,否则将导致编译出错。28 第一章第一章 绪论绪论1.4 C+1.4 C+程序设计程序设计1.4.1 1.4.1 函数与参数传递函数与参数传递 1.1.传值参数和引用参数传值参数和引用参数 2.2.函数返回值函数返回值 3.3.函数原型函数原型(1)(1)函数返回一个值函数返回一个值int Abc(int a,int&c)int Abc(int a,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 分析 PPT

限制150内