《数据结构C-版》期末复习课件1.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据结构C-版》期末复习课件1.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构C-版 数据结构 期末 复习 课件
- 资源描述:
-
1、数据结构(数据结构(C版)版)清华大学出版社清华大学出版社数据结构数据结构期末复习(1)数据结构(数据结构(C版)版)清华大学出版社清华大学出版社第第 1 章章 绪绪 论论数据结构的兴起和发展数据结构的兴起和发展数据结构的研究对象数据结构的研究对象 数据结构的基本概念数据结构的基本概念算法及算法分析算法及算法分析本章的基本内容是:本章的基本内容是:数据结构(数据结构(C版)版)清华大学出版社清华大学出版社1.1 数据结构的兴起和发展数据结构的兴起和发展 程序设计的实质是什么程序设计的实质是什么?数据表示:数据表示:将数据存储在计算机中将数据存储在计算机中数据处理:数据处理:处理数据,求解问题处
2、理数据,求解问题数据结构问题起源于程序设计数据结构问题起源于程序设计 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社 数据结构随着程序设计的发展而发展数据结构随着程序设计的发展而发展 数据结构的发展并未终结数据结构的发展并未终结1.无结构阶段无结构阶段2.结构化阶段:数据结构算法程序结构化阶段:数据结构算法程序3.面向对象阶段:面向对象阶段:(数据结构算法)程序(数据结构算法)程序1.1 数据结构的兴起和发展数据结构的兴起和发展 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社1.2 数据结构的研究对象数据结构的研究对象 计算机求解问题计算机求解问题:问题问题抽象出问题的
3、模型抽象出问题的模型求模型的解求模型的解 问题问题数值问题、非数值问题数值问题、非数值问题 数数 值值 问问 题题数学方程数学方程 非数值问题非数值问题数据结构数据结构数据结构(数据结构(C版)版)清华大学出版社清华大学出版社数据结构数据结构:相互之间存在一定:相互之间存在一定关系关系的数据元素的集合。的数据元素的集合。按照视点的不同,数据结构分为逻辑结构和存储结构。按照视点的不同,数据结构分为逻辑结构和存储结构。逻辑结构:指数据元素之间逻辑结构:指数据元素之间逻辑关系逻辑关系的整体。的整体。存储结构:又称为物理结构,是数据及其逻辑结构在存储结构:又称为物理结构,是数据及其逻辑结构在计算机计算
4、机中的表示。中的表示。1.3 数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构的基本概念存储结构实质上是内存分配,存储结构实质上是内存分配,在具体实现时,依赖于计算机语言。在具体实现时,依赖于计算机语言。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社数据结构从逻辑上分为四类:数据结构从逻辑上分为四类:集合:数据元素之间就是集合:数据元素之间就是 “属于同一个集合属于同一个集合”;1.3 数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构的基本概念集合太松散,课内几乎不讨论。数据结构(数据结构(C版)版)清华大学出版社清华大学出版社数据结构从逻辑上分为四类:
5、数据结构从逻辑上分为四类:集合:数据元素之间就是集合:数据元素之间就是 “属于同一个集合属于同一个集合”;线性结构:数据元素之间线性结构:数据元素之间 存在着一对一的线性关系;存在着一对一的线性关系;1.3 数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构(数据结构(C版)版)清华大学出版社清华大学出版社数据结构从逻辑上分为四类:数据结构从逻辑上分为四类:集合:数据元素之间就是集合:数据元素之间就是 “属于同一个集合属于同一个集合”;线性结构:数据元素之间线性结构:数据元素之间 存在着一对一的线性关系;存在着一对一的线性关系;树结构:数据元素之间存在树结构:数据
6、元素之间存在 着一对多的层次关系;着一对多的层次关系;1.3 数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构(数据结构(C版)版)清华大学出版社清华大学出版社数据结构从逻辑上分为四类:数据结构从逻辑上分为四类:集合:数据元素之间就是集合:数据元素之间就是 “属于同一个集合属于同一个集合”;线性结构:数据元素之间线性结构:数据元素之间 存在着一对一的线性关系;存在着一对一的线性关系;树结构:数据元素之间存在树结构:数据元素之间存在 着一对多的层次关系;着一对多的层次关系;图结构:数据元素之间存在图结构:数据元素之间存在 着多对多的任意关系。着多对多的任意关系。1
7、.3 数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构(数据结构(C版)版)清华大学出版社清华大学出版社通常有两种存储结构:通常有两种存储结构:1.顺序存储结构:用一组顺序存储结构:用一组连续连续的存储单元的存储单元依次依次存储数据元素,存储数据元素,数据元素之间的逻辑关系由元数据元素之间的逻辑关系由元素的素的存储位置存储位置来表示。来表示。batcateat起始地址起始地址例:(例:(bat,cat,eat)1.3 数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构(数据结构(C版)版)清华大学出版社清华大学出版社通常有两种存储结
8、构:通常有两种存储结构:1.顺序存储结构:用一组顺序存储结构:用一组连续连续的存储单元的存储单元依次依次存储数据元素,存储数据元素,数据元素之间的逻辑关系由元数据元素之间的逻辑关系由元素的素的存储位置存储位置来表示。来表示。2.链接存储结构:用一组链接存储结构:用一组任意任意的存储单元存储数据元素,数的存储单元存储数据元素,数据元素之间的逻辑关系用据元素之间的逻辑关系用指针指针来表示来表示。例:(例:(bat,cat,eat)1.3 数据结构的基本概念数据结构的基本概念数据结构的基本概念数据结构的基本概念0200020803000325 bat0200 cat0325 eat 数据结构(数据结
9、构(C版)版)清华大学出版社清华大学出版社逻辑结构和存储结构之间的关系逻辑结构和存储结构之间的关系 数据的逻辑结构属于用户视图,是数据的逻辑结构属于用户视图,是面向问题面向问题的,的,反映了数据内部的构成方式;数据的存储结构反映了数据内部的构成方式;数据的存储结构属于具体实现的视图,是属于具体实现的视图,是面向计算机面向计算机的。的。一种数据的逻辑结构可以用多种存储结构来存一种数据的逻辑结构可以用多种存储结构来存储,而采用不同的存储结构,其数据处理的效储,而采用不同的存储结构,其数据处理的效率往往是不同的。率往往是不同的。1.3 数据结构的基本概念数据结构的基本概念数据结构(数据结构(C版)版
10、)清华大学出版社清华大学出版社1.3 1.3 数据结构的基本概念(小结)数据结构的基本概念(小结)数据的操作:插入、删除、修改、检索、排序等数据的操作:插入、删除、修改、检索、排序等 数据的逻辑结构数据的逻辑结构 数据的存储结构数据的存储结构 顺序存储顺序存储链式存储链式存储集合集合线性结构线性结构树结构树结构图结构图结构 非数值问题非数值问题 数数据据表表示示数据结构(数据结构(C版)版)清华大学出版社清华大学出版社 欧几里德算法mnr例:欧几里德算法例:欧几里德算法辗转相除法辗转相除法求两个自然数求两个自然数 m 和和 n 的最大公约数的最大公约数数据结构(数据结构(C版)版)清华大学出版
11、社清华大学出版社算法的描述方法算法的描述方法自然语言自然语言 优点:容易理解优点:容易理解缺点:冗长、二义性缺点:冗长、二义性使用方法:粗线条描述算法思想使用方法:粗线条描述算法思想 注意事项:避免写成自然段注意事项:避免写成自然段数据结构(数据结构(C版)版)清华大学出版社清华大学出版社 输入输入m 和和n;求求m除以除以n的余数的余数r;若若r等于等于0 0,则,则n为最大公约数,为最大公约数,算法结束;否则执行第步;算法结束;否则执行第步;将将n的值放在的值放在m中,将中,将r的值放的值放在在n中;中;重新执行第步。重新执行第步。例:欧几里德算法例:欧几里德算法自然语言数据结构(数据结构
12、(C版)版)清华大学出版社清华大学出版社优点:流程直观优点:流程直观 缺点:缺少严密性、灵活性缺点:缺少严密性、灵活性使用方法:描述简单算法使用方法:描述简单算法注意事项:注意抽象层次注意事项:注意抽象层次算法的描述方法算法的描述方法流程图流程图 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社N开始输入m和n r=m%nr=0m=n;n=r 输出n结束Y流 程 图例:欧几里德算法例:欧几里德算法数据结构(数据结构(C版)版)清华大学出版社清华大学出版社优点:能由计算机执行优点:能由计算机执行 缺点:抽象性差,对语言要求高缺点:抽象性差,对语言要求高使用方法:算法需要验证使用方法:算
13、法需要验证注意事项:将算法写成子函数注意事项:将算法写成子函数算法的描述方法算法的描述方法程序设计语言程序设计语言 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社#include int CommonFactor(int m,int n)int r=m%n;while(r!=0)m=n;n=r;r=m%n;return n;void main()coutCommonFactor(63,54)endl;程序设计语言例:欧几里德算法例:欧几里德算法数据结构(数据结构(C版)版)清华大学出版社清华大学出版社伪代码伪代码(Pseudocode):介于自然语言和):介于自然语言和程序设计语言
14、之间的方法,它采用某一程序程序设计语言之间的方法,它采用某一程序设计语言的基本语法,操作指令可以结合自设计语言的基本语法,操作指令可以结合自然语言来设计。然语言来设计。优点:表达能力强,抽象性强,容易理解优点:表达能力强,抽象性强,容易理解使用方法:使用方法:7 2算法的描述方法算法的描述方法伪代码伪代码 数据结构(数据结构(C版)版)清华大学出版社清华大学出版社 1.r=m%n;2.循环直到循环直到 r 等于等于0 2.1 m=n;2.2 n=r;2.3 r=m%n;3.输出输出 n;伪 代 码上述伪代码再具体一些,用上述伪代码再具体一些,用C+的函数来的函数来描述。请同学们自行完成!描述。
15、请同学们自行完成!例:欧几里德算法例:欧几里德算法数据结构(数据结构(C版)版)清华大学出版社清华大学出版社算法分析算法分析(Algorithm Analysis):对算法所需要的):对算法所需要的计算机资源计算机资源时间时间和和空间空间进行估算。进行估算。时间复杂性(时间复杂性(Time Complexity)空间复杂性(空间复杂性(Space Complexity)数据结构(数据结构(C版)版)清华大学出版社清华大学出版社算法的时间复杂度分析算法的时间复杂度分析算法的算法的执行时间执行时间每条语句执行时间之和每条语句执行时间之和执行次数执行次数执行一次的时间执行一次的时间指令系统、编译的代
16、码质量指令系统、编译的代码质量单位时间单位时间每条语句每条语句执行次数执行次数之和之和for(i=1;i=n;i+)for(j=1;j=n;j+)x+;基本语句基本语句的执行次数的执行次数数据结构(数据结构(C版)版)清华大学出版社清华大学出版社问题规模:问题规模:输入量的多少。输入量的多少。基本语句:基本语句:是执行次数与整个算法的执行次是执行次数与整个算法的执行次数成数成正比的操作指令。正比的操作指令。for(i=1;i=n;i+)for(j=1;j=n;j+)x+;问题规模:n基本语句:x+数据结构(数据结构(C版)版)清华大学出版社清华大学出版社定义定义 若存在两个正的常数若存在两个正
17、的常数c和和n0,对于任意,对于任意nn0,都有都有T(n)cf(n),则称,则称T(n)=O(f(n)n0问题规模问题规模n执执行行次次数数n0之前的之前的情况无关情况无关紧要紧要T(n)cf(n)v当问题规模充分大时在渐近意义下的阶当问题规模充分大时在渐近意义下的阶大大O符号符号数据结构(数据结构(C版)版)清华大学出版社清华大学出版社定理:若定理:若A(n)=amnm+am-1nm-1+a1n+a0是一个是一个m次多项式,则次多项式,则A(n)=O(nm)。说明:在计算算法时间复杂度时,可以说明:在计算算法时间复杂度时,可以忽略所有低次幂和最高次幂的系数。忽略所有低次幂和最高次幂的系数。
18、大大O符号符号数据结构(数据结构(C版)版)清华大学出版社清华大学出版社例例1-5 +x;例例1-6 for(i=1;i=n;+i)+x;例例1-7 for(i=1;i=n;+i)for(j=1;j=n;+j)+x;例例1-8 for(i=1;i=n;+i)for(j=1;j=i-1;+j)+x;数据结构(数据结构(C版)版)清华大学出版社清华大学出版社例例1-9 for(i=1;i=n;+i)for(j=1;j=n;+j)cij=0;for(k=1;k=n;+k)cij+=aik*bkj;例例1-10 for(i=1;i=n;i=2*i)+x;(1)(log2n)(n)(nlog2n)(n2
19、)(n3)(2n)(n!)数据结构(数据结构(C版)版)清华大学出版社清华大学出版社最好情况、最坏情况、平均情况最好情况、最坏情况、平均情况例:在一维整型数组例:在一维整型数组A n 中顺序查找与给定值中顺序查找与给定值k相等相等的元素(假设该数组中有且仅有一个元素值为的元素(假设该数组中有且仅有一个元素值为k)。int Find(int A,int n)for(i=0;i=MaxSize合理的插入位置:合理的插入位置:1ilength+1(i指的是元素的序号)指的是元素的序号)2.2 线性表的顺序存储结构及实现线性表的顺序存储结构及实现顺序表的实现顺序表的实现插入插入 435122442a1
20、a2a3a40 1 2 3 4422412335什么时候不能插入什么时候不能插入?注意边界条件注意边界条件数据结构(数据结构(C版)版)清华大学出版社清华大学出版社1.如果表满了,则抛出如果表满了,则抛出上溢上溢异常异常;2.如果元素的插入位置不合理,则抛出如果元素的插入位置不合理,则抛出位置位置异常异常;3.将最后一个元素至第将最后一个元素至第i个元素分别向后移动一个位置;个元素分别向后移动一个位置;4.将元素将元素x填入位置填入位置i处;处;5.表长加表长加1;算法描述算法描述伪代码伪代码2.2 线性表的顺序存储结构及实现线性表的顺序存储结构及实现顺序表的实现顺序表的实现插入插入数据结构(
21、数据结构(C版)版)清华大学出版社清华大学出版社template void SeqList:Insert(int i,T x)if(length=MaxSize)throw 上溢上溢;if(ilength+1)throw 位置位置;for(j=length;j=i;j-)-)dataj=dataj-1;datai-1=x;length+;算法描述算法描述C+描述描述2.2 线性表的顺序存储结构及实现线性表的顺序存储结构及实现顺序表的实现顺序表的实现插入插入基本语句基本语句?数据结构(数据结构(C版)版)清华大学出版社清华大学出版社操作接口:操作接口:T Delete(int i)删除前:删除前
22、:(a1,ai-1,ai,ai+1,an)删除后:删除后:(a1,ai-1,ai+1,an)顺序表的实现顺序表的实现删删 除除2.2 线性表的顺序存储结构及实现线性表的顺序存储结构及实现ai-1和和ai之间的逻辑关系发生了变化之间的逻辑关系发生了变化顺序存储要求存储位置反映逻辑关系顺序存储要求存储位置反映逻辑关系存储位置要反映这个变化存储位置要反映这个变化数据结构(数据结构(C版)版)清华大学出版社清华大学出版社例:(例:(35,33,12,24,42),),删除删除i=2的数据元素。的数据元素。仿照顺序表的插入操作,完成:仿照顺序表的插入操作,完成:1.分析边界条件;分析边界条件;2.分别给
23、出伪代码和分别给出伪代码和C+描述的算法;描述的算法;3.分析时间复杂度。分析时间复杂度。2.2 线性表的顺序存储结构及实现线性表的顺序存储结构及实现顺序表的实现顺序表的实现删删 除除 535a1a2a3a40 1 2 3 4422412334a5122442数据结构(数据结构(C版)版)清华大学出版社清华大学出版社顺序表的实现顺序表的实现按位查找按位查找操作接口:操作接口:T Get(int i)2.2 线性表的顺序存储结构及实现线性表的顺序存储结构及实现 0 i-2 i-1 n-1 Max-1 a1 ai-1 ai an 空闲空闲 n算法描述:算法描述:template T SeqList
24、:Get(int i)if(i=1&i=length)return i-1;时间复杂度时间复杂度?数据结构(数据结构(C版)版)清华大学出版社清华大学出版社顺序表的优缺点顺序表的优缺点 顺序表的优点:顺序表的优点:无需为表示表中元素之间的逻辑关系而增加额外的无需为表示表中元素之间的逻辑关系而增加额外的存储空间;存储空间;随机存取:可以快速地存取表中任一位置的元素。随机存取:可以快速地存取表中任一位置的元素。顺序表的缺点:顺序表的缺点:插入和删除操作需要移动大量元素;插入和删除操作需要移动大量元素;表的容量难以确定,表的容量难以扩充;表的容量难以确定,表的容量难以扩充;造成存储空间的造成存储空间
25、的碎片碎片。2.2 线性表的顺序存储结构及实现线性表的顺序存储结构及实现数据结构(数据结构(C版)版)清华大学出版社清华大学出版社单链表的实现单链表的实现按位查找按位查找操作接口:操作接口:T Get(int i);v核心操作(关键操作):核心操作(关键操作):工作指针后移工作指针后移。从头结点。从头结点(或开始结点)出发,通过工作指针的反复后移而将(或开始结点)出发,通过工作指针的反复后移而将整个单链表整个单链表“审视审视”一遍的方法称为一遍的方法称为扫描扫描(或遍历)(或遍历)。2.3 线性表的链接存储结构及实现线性表的链接存储结构及实现firsta1pa2panaipp查找成功查找成功p
展开阅读全文