数据结构与算法数据结构与算法实验-.ppt





《数据结构与算法数据结构与算法实验-.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法数据结构与算法实验-.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构与算法数据结构与算法实验-Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望纸上得来终觉浅,绝知此事要躬行纸上得来终觉浅,绝知此事要躬行读读+写写+讨论讨论学习方法学习方法所有作业按时交,注释不少于所有作业按时交,注释不少于30%30%所有作业分为必做(所有作业分为必做(80%80%)和选做()和选做(20%20%)上课时间上课时间:周一周一6-7节节周四周四1-2节节上机时间上机时间:周一周一8-9节节答疑时间答疑时间:周一周一16:30-17:30408讨
2、论时间讨论时间:周四周四9:40-10:40508?放慢速度?时常复习以前讲的?8个小时?只会课上讲的?答疑了吗?讲但不是全部部分内容需要自己学习希望预习复习自主学习希望:提前5分钟到教室,不迟到 不吃东西 手机静音 随时提问,积极响应 按时交作业对老师的希望?数据结构学什么数据结构的地位和作用怎么学好数据结构教学内容特点:用数学方程进行数值运算用数学方程进行数值运算 称这类问题的数学模型数学模型是数学方程数学方程第一章绪论例1:数学方程(1)用二分法求方程的根(2)用迭代法求a的平方根例例2:图书管理系统图书管理系统建立一个小型图书管理系统,该系统具有输入、建立一个小型图书管理系统,该系统具
3、有输入、查询、排序、修查询、排序、修改、插入、删除改、插入、删除、输出等功能。、输出等功能。实验要求:实验要求:(1)从文件中读入图书信息,每本图书至少包括书号、书名、作者、出版社、出版日期、单价等信息;图书数量不少于16本(2)能根据书号或书名或出版社查询所有满足条件的图书(3)系统界面自行设计(4)能够按照书名或出版日期排序(5)能能修改图书除书号外的所有信息(6)能从文件中追加新的图书数据(7)对已经遗失的图书从系统中删除相应的图书信息涉及:涉及:l数据录入数据录入l数据查询数据查询l数据维护数据维护l数据排序、输出数据排序、输出需要:需要:建一张表建一张表确定表中前后数据的关系确定表中
4、前后数据的关系实现对表进行操作的方法实现对表进行操作的方法书号书号书名书名作者作者出版社出版社出版日期出版日期数量数量单价单价例例3:扑克牌接龙游戏扑克牌接龙游戏洗牌洗牌发牌、出牌、移牌发牌、出牌、移牌比较、判断比较、判断输赢判断输赢判断(1)表示所有扑克牌)表示所有扑克牌(2)实现各种游戏动作)实现各种游戏动作特点:两个数据之间有一定顺序特点:两个数据之间有一定顺序主要操作有:插入、查找、修改、删除主要操作有:插入、查找、修改、删除称这类问题的数学模型为称这类问题的数学模型为线性表线性表(线性结构线性结构)学生成绩管理系统学生成绩管理系统扑克牌接龙游戏扑克牌接龙游戏.例例4 人机对奕人机对奕
5、.井字棋、中国象棋、国际象棋井字棋、中国象棋、国际象棋对奕过程中可能出现的棋盘状态称为格局对奕过程中可能出现的棋盘状态称为格局格局之间的关系由下棋规则确定格局之间的关系由下棋规则确定从一个格局中可以派生出若干个新格局从一个格局中可以派生出若干个新格局从新格局又可以派生出更新的格局从新格局又可以派生出更新的格局整个对奕过程可能派生出的所有格局就象一棵倒挂的树整个对奕过程可能派生出的所有格局就象一棵倒挂的树树根为对奕开始的格局树根为对奕开始的格局树叶为可能出现的一种结局树叶为可能出现的一种结局对奕的过程就是从树根走到树叶的过程对奕的过程就是从树根走到树叶的过程表示每一种格局表示每一种格局表示格局之
6、间的派生关系表示格局之间的派生关系给出对奕的算法:从所有儿子格局中找出给出对奕的算法:从所有儿子格局中找出最有利的格局最有利的格局需要需要例5 文件系统/(root)binlibuseretcmathdsclgyintaoxieStack.cppQueue.cppTree.cpp这类问题的数学模型称为这类问题的数学模型称为树树(树型结构、层次结构)树的特点:树的特点:除根外每个结点有唯一一个双亲除根外每个结点有唯一一个双亲(上级,祖先)除叶子结点外,每个结点可以有多于一个儿子除叶子结点外,每个结点可以有多于一个儿子树的操作:各种遍历搜索树的操作:各种遍历搜索例例6多叉路口交通灯管制多叉路口交通
7、灯管制多叉路口需要设几种颜色的灯才能使车辆互不相撞多叉路口需要设几种颜色的灯才能使车辆互不相撞且车流量最大且车流量最大需要:表示圆圈(道路)需要:表示圆圈(道路)表示边(是否冲突)表示边(是否冲突)给出染色方法给出染色方法四色定理-着色问题例例7最短路径问题最短路径问题油田铺设管道,把原油送到加工厂,要求所铺设油田铺设管道,把原油送到加工厂,要求所铺设的管道最短的管道最短农夫过河农夫过河 一个农夫带着只狼、一只羊和棵白菜,身处河的南岸。他要把这些东西全部运到北岸。他面前只有一条小船,船只能容下他和件物品,另外只有农夫才能撑船。如果农夫在场,则狼不能吃羊,羊不能吃白菜,否则狼会吃羊,羊会吃白菜,
8、所以农夫不能留下羊和白菜自己离开,也不能留下狼和羊自己离开,而狼不吃白菜。请求出农夫将所有的东西运过河的方案。出发地目的地人羊狼菜人羊狼菜(初始)(初始)人羊狼人羊狼人羊菜人羊菜人狼菜人狼菜羊狼菜(不可能)出发地目的地人(不可能)羊羊狼狼菜菜空(结束)空(结束)狼菜狼菜人菜(不可能)羊菜(不可能)人羊人羊人狼(不可能)出发地所有状态出发地所有状态特点:任何两个数据之间都可以有关系特点:任何两个数据之间都可以有关系(单向、双向单向、双向)操作:遍历、染色、最短路径操作:遍历、染色、最短路径这种数学模型称为这种数学模型称为图图l用计算机解决一个实际问题的步骤:用计算机解决一个实际问题的步骤:问题分
9、析问题分析 建立模型建立模型 确定算法确定算法 设计程序设计程序 上机调试上机调试 结结果果典型的数学模型:表、树、图典型的数学模型:表、树、图各种模型的典型算法各种模型的典型算法典型的查找、排序算法典型的查找、排序算法简单的算法设计方法简单的算法设计方法l数据结构数据结构是一门研究是一门研究计算机的计算机的操作对象操作对象以及以及操作操作对象之间的对象之间的关系关系和和对对操作操作对象实施的典型对象实施的典型操作操作的学科的学科1.1什么是数据结构什么是数据结构操作对象操作对象关系关系典型操作典型操作1.2基本概念和术语基本概念和术语数据数据:DataData 数据是计算机化的信息(对现实世
10、界的事物采用计算机能够识别、存储和处理的形式所进行的描述)数值性数据数值性数据 非数值性数据非数值性数据数据元素数据元素:DataElement数据的基本单位,如格局、结点数据的基本单位,如格局、结点通常作为一个整体进行考虑和处理通常作为一个整体进行考虑和处理数据元素的组成成员称为数据项数据元素的组成成员称为数据项数据项数据项:Data ItemData Item 数据的最小单位数据的最小单位数据的最小单位数据的最小单位一个数据元素由多个数据项组成一个数据元素由多个数据项组成一个数据元素由多个数据项组成一个数据元素由多个数据项组成数据对象:Data Object 具有相同性质的数据元素的集合具
11、有相同性质的数据元素的集合具有相同性质的数据元素的集合具有相同性质的数据元素的集合如所有书目、所有扑克牌、所有格局、所有道路如所有书目、所有扑克牌、所有格局、所有道路如所有书目、所有扑克牌、所有格局、所有道路如所有书目、所有扑克牌、所有格局、所有道路 数据类型:Data Type数据结构数据结构:Data Structure(1 1)相互间存在一种或多种特定关系的数据元素的集合)相互间存在一种或多种特定关系的数据元素的集合)相互间存在一种或多种特定关系的数据元素的集合)相互间存在一种或多种特定关系的数据元素的集合一种或多种关系称为结构一种或多种关系称为结构一种或多种关系称为结构一种或多种关系称
12、为结构有有有有4 4种基本结构:种基本结构:种基本结构:种基本结构:数据的逻辑结构数据的逻辑结构数学数学模型模型表表树图实例例图书管理管理扑克牌扑克牌游游戏人机人机对弈弈目目录管理管理信号灯信号灯设置置管道管道铺设数据数据元素元素图书图书牌牌格局格局目目录道路道路连接点接点数据数据项书名、名、书号、号、作者等作者等花色、花色、点数、点数、正反正反行、行、列、列、值名字、名字、物理物理位置位置起点、起点、终点、点、颜色色地理地理位置位置数据数据对象象所有所有图书54张牌牌所有所有格局格局所有所有目目录所有所有道路道路所有所有连接点接点关系关系顺序序先后先后派生派生从属从属冲突冲突架架设数据的逻辑
13、结构数据的逻辑结构线性结构 线性表(表,栈,队列,串等)非线性结构 树(二叉树,HuffmanHuffman树,树,二叉排序树等)二叉排序树等)图(有向图,无向图等)图图 树树 二叉树二叉树 线性表线性表 数据的存储结构(物理结构)数据的存储结构(物理结构)逻辑结构到物理存储空间的映射逻辑结构到物理存储空间的映射 内存.顺序、链式、索引、散列顺序、链式、索引、散列a1a2a3a4a5逻辑结构逻辑结构物理结构(一)物理结构(一)物理结构(二)物理结构(二)a1a2a3a4a5a3a4a2a5a10struct student /数据类型 int num;char name12;char sex;
14、int age;int score5;int scoresum;s50;/数据对象数数据据项项s0、s1、s2、.数据元素数据元素数组数组-数据关系的表示数据关系的表示structstu/数据类型intnum;intscore;structstu*next;*head,*p1;数数据据项项*p1、*head、.数据元素数据元素链表链表-数据关系的表示数据关系的表示head为首的数据元素构成数据对象为首的数据元素构成数据对象数据的存储结构借助于高级语言中的数据类型来描述数据的存储结构借助于高级语言中的数据类型来描述数据的存储结构借助于高级语言中的数据类型来描述数据的存储结构借助于高级语言中的数据
15、类型来描述顺序顺序链式链式索引索引散列散列顺序映象顺序映象顺序映象顺序映象非顺序映象非顺序映象非顺序映象非顺序映象(2 2)数据元素)数据元素)数据元素)数据元素+关系关系关系关系数据结构是一个二元组:数据结构是一个二元组:数据结构是一个二元组:数据结构是一个二元组:Data_structure=(D,S)Data_structure=(D,S)D:D:数据元素的有穷集合数据元素的有穷集合数据元素的有穷集合数据元素的有穷集合S:S:数据之间有穷关系的集合数据之间有穷关系的集合数据之间有穷关系的集合数据之间有穷关系的集合例:例:DS1=(D,S)D=V1,V2,V3,V4S=,(3)数据之间的结
16、构关系)数据之间的结构关系它包括数据的逻辑结构和它包括数据的逻辑结构和数据的物理结构数据的物理结构(4)是一类普通数据的表示及其相关操作)是一类普通数据的表示及其相关操作(5)根据各种不同的数据集合和数据之间的关系研究)根据各种不同的数据集合和数据之间的关系研究如何表示、存储、操作这些数据的技术如何表示、存储、操作这些数据的技术研究数据结构从三个方面进行:研究数据结构从三个方面进行:(1)逻辑结构逻辑结构(2)存储结构存储结构(3)操作操作(运算)(运算)对数据进行的处理,对数据进行的处理,定义在数据的逻辑结构上定义在数据的逻辑结构上具体实现于数据的存储结构具体实现于数据的存储结构引用引用引用
17、(引用(referencereference)作用是为变量起一个别名)作用是为变量起一个别名例如:例如:int a;int&b=a;int a;int&b=a;说明:(说明:(1 1)b b是一个引用变量,它的作用与是一个引用变量,它的作用与a a相同相同 (2 2)b b与与a a占用相同的内存空间占用相同的内存空间1231000a假设变量假设变量a的地址为的地址为1000,值为,值为123定义了定义了int&b=a后后:1231000ab(3 3)b b的作用域与的作用域与a a相同,在其作用域内,不能相同,在其作用域内,不能作为其它变量或其它变量的别名作为其它变量或其它变量的别名 (4
18、4)定义一个引用变量的同时必须初始化)定义一个引用变量的同时必须初始化-说明它是谁的别名说明它是谁的别名输出:输出:a=10b=10a=100main()inta=10;int&b=a;printf(a=%dn,a);printf(b=%dn,b);b=100;printf(a=%dn,a);(5 5)定义引用变量的作用是使得函数调用时,)定义引用变量的作用是使得函数调用时,实参与形参之间不仅有传值方式,还有传地址方式实参与形参之间不仅有传值方式,还有传地址方式 引用变量做参数,相当于传地址引用变量做参数,相当于传地址voidswap(int&x,int&y)intt;t=x;x=y;y=t;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 实验

限制150内