数据结构C语言版严蔚敏绪论教案.ppt
《数据结构C语言版严蔚敏绪论教案.ppt》由会员分享,可在线阅读,更多相关《数据结构C语言版严蔚敏绪论教案.ppt(151页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构C语言版严蔚敏绪论 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望祝同学们新学期愉快、学习进步!祝同学们新学期愉快、学习进步!数据结构课程所处的地位:介于数学、计算介于数学、计算机硬件和计算机机硬件和计算机软件三者之间的软件三者之间的一门核心课程。一门核心课程。数据结构数据结构是计算机专业的一门综合性专业基是计算机专业的一门综合性专业基础课础课是计算机专业本是计算机专业本/专科生必修学位课程专科生必修学位课程是计算机研究生是计算机研究生/升本入学考试必考科
2、目升本入学考试必考科目是软件人员水平考试内容是软件人员水平考试内容F是数学建模、是数学建模、ACM程序竞赛基础程序竞赛基础 学业基础n先修课程:高级语言程序设计先修课程:高级语言程序设计 (如如 C/C+C/C+语言语言)n后续课程:操作系统(例:打印机后续课程:操作系统(例:打印机 队列管理)、数据库原队列管理)、数据库原 理、人工智能等。理、人工智能等。课程安排课程安排n总学时:总学时:90(1890(18周周*5)5)讲课学时:讲课学时:72 72 实验学时:实验学时:1818教学参考书教学参考书教教材:材:数据结构数据结构C语言版语言版严蔚敏、吴伟民严蔚敏、吴伟民-清华大学出版社清华大
3、学出版社n数据结构数据结构C语言篇语言篇习题与解析习题与解析李春葆李春葆-清华大学出版社清华大学出版社n数据结构自学考试指导数据结构自学考试指导丁宝康等丁宝康等清华大学出版社清华大学出版社n算法与数据结构算法与数据结构,范策等,机械工业出版社,范策等,机械工业出版社 http:/210.44.232.53/ec/C70/Index.htm(我院精品课程我院精品课程)n http:/ 数据结构数据结构+精品课程精品课程实 验u实验环境实验环境:Win-tc或或Turboc或或VC+u实验项目名称实验项目名称:一元稀疏多项式的加减运算一元稀疏多项式的加减运算栈和队列的抽象数据类型实现栈和队列的抽象
4、数据类型实现二叉树的建立、遍历及典型算法实现二叉树的建立、遍历及典型算法实现图的建立、遍历及典型算法实现图的建立、遍历及典型算法实现典型查找算法实现典型查找算法实现内部排序算法实现内部排序算法实现课程设计u题目(任选一)题目(任选一):迷宫问题求解迷宫问题求解算术表达式求值算术表达式求值校园导游系统校园导游系统图书管理信息系统的设计与实现图书管理信息系统的设计与实现查找算法综合比较查找算法综合比较排序算法综合比较排序算法综合比较u要求达到的目标要求达到的目标:文档清晰、完整,学会分析解决问题文档清晰、完整,学会分析解决问题程序运行良好程序运行良好1.1.自觉预习、遵守纪律、认真听课、及时复习;
5、自觉预习、遵守纪律、认真听课、及时复习;2.2.按时、独立、认真地完成每次作业;按时、独立、认真地完成每次作业;每一章有作业题,按时交。每一章有作业题,按时交。每次实验前做好准备工作每次实验前做好准备工作,写好程序写好程序,实验后交实验报告(写在纸实验后交实验报告(写在纸上)。上)。期中布置课程设计期中布置课程设计3.3.积极回答课堂提问;积极回答课堂提问;4.4.成绩评定标准:成绩评定标准:5.5.平时表现:占平时表现:占30%30%,包括作业、课程设计、提问、学习纪律,包括作业、课程设计、提问、学习纪律6.6.期末考试:闭卷笔试,占期末考试:闭卷笔试,占70%70%目 录Contents
6、第一章第一章 绪绪 论论 (4(4学时学时)第二章第二章 线性表线性表 (8(8学时学时)第三章第三章 栈和队列栈和队列 (8(8学时学时)第四章第四章 串、串、数组和广义表数组和广义表 (6(6学时学时)第五章第五章 树和二叉树树和二叉树 (10(10学时学时)第六章第六章 图图 (6(6学时学时)第七章第七章 查找查找 (6(6学时学时)第八章第八章 排序排序 (6(6学时学时)数据结构课程的内容逻辑结构唯一逻辑结构唯一存储结构不唯一存储结构不唯一运算的实现依赖于运算的实现依赖于存储结构存储结构1.1 1.1 什么是数据结构什么是数据结构1.1.2 2 基本概念和术语基本概念和术语1.1.
7、3 3 抽象数据类型抽象数据类型1.41.4 算法及算法分析(算法评价)算法及算法分析(算法评价)第一章第一章绪绪论论计算机发展简史计算机发展简史众众所所周周知知,二二十十世世纪纪四四十十年年代代,电电子子数数字字计计算算机机问问世世的的直直接接原原因因是是解解决决弹弹道道学学的的计计算算问问题。题。早早期期,电电子子计计算算机机的的应应用用范范围围,几几乎乎只只局局限限于于科科学学和和工工程程的的计计算算,其其处处理理的的对对象象是是纯纯数数值值性性的的信信息息,通通常常,人人们们把把这这类类问问题题称称为为数数值计算。值计算。近三十年来,电子计算机的发展异常迅猛近三十年来,电子计算机的发展
8、异常迅猛表表现现在在计计算算机机本本身身运运算算速速度度不不断断提提高高、信信息息存存储储量量日益扩大、价格逐步下降日益扩大、价格逐步下降更更重重要要的的是是计计算算机机广广泛泛地地应应用用于于情情报报检检索索、企企业业管管理理、系系统统工工程程等等方方面面,已已远远远远超超出出了了科科技技计计算算的的范范围,而渗透到人类社会活动的一切领域围,而渗透到人类社会活动的一切领域计算机发展简史计算机发展简史与此相应,与此相应,计算机的处理对象也从计算机的处理对象也从简单的简单的纯数值性纯数值性信息信息发展到发展到非数值性非数值性的和具有一定结构的信息的和具有一定结构的信息计算机发展简史计算机发展简史
9、“数据结构数据结构”作为一门独立的课程在国外是从作为一门独立的课程在国外是从1968年才开始设立的。年才开始设立的。1968年美国唐年美国唐欧欧克努特教授开创了数据结构克努特教授开创了数据结构的最初体系,他所著的的最初体系,他所著的计算机程序设计技巧计算机程序设计技巧第第一卷一卷基本算法基本算法是第一本较系统地阐述数据的逻是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。辑结构和存储结构及其操作的著作。“数据结构”被列入美国一些大学计算机科学系的教学计划。数据结构数据结构D.Knuth的巨著的巨著计算机程序设计艺术计算机程序设计艺术n第一卷第一卷“基本算法基本算法”n第二卷第二卷“半
10、数字算法半数字算法”n第三卷第三卷“排序与搜索排序与搜索”1974年获得图灵奖,是年获得图灵奖,是40届中唯一因一部影响巨大的书届中唯一因一部影响巨大的书而获奖而获奖数据结构数据结构 发展阶段:发展阶段:数据结构的概念不断扩充,包括了网络、集合数据结构的概念不断扩充,包括了网络、集合代数论、关系等代数论、关系等“离散数学结构离散数学结构”的内容。的内容。70年代后期,我国高校陆续开设该课程。年代后期,我国高校陆续开设该课程。数据结构数据结构 数据结构是研究什么的?这是课程最基本的问数据结构是研究什么的?这是课程最基本的问题,关系到我们为什么要学习数据结构这门课程题,关系到我们为什么要学习数据结
11、构这门课程1.1什么是数据结构什么是数据结构从应用问题涉及的对象来分可分为从应用问题涉及的对象来分可分为数值问题数值问题 非数值问题非数值问题数值问题数值问题就是我们平时所说的计算问题,如已知圆的就是我们平时所说的计算问题,如已知圆的半径,要求圆的面积半径,要求圆的面积非数值问题非数值问题就是问题中涉及的模型不能用数学方程来就是问题中涉及的模型不能用数学方程来表达的那些问题表达的那些问题1.1什么是数据结构什么是数据结构n例例1(任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车(任务分配问题)某车间有甲、乙两台机床,可用于加工三种工件。假定这两台车床的可用台时数分别为床的
12、可用台时数分别为800和和900,三种工件的数量分别为,三种工件的数量分别为400、600和和500,且已知用,且已知用三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床三种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。问怎样分配车床的加工任务,才能既满足加工工件的要求,又使加工费用最低?的加工任务,才能既满足加工工件的要求,又使加工费用最低?数值问题与非数值问题有什么不同数值问题与非数值问题有什么不同1)数值问题)数值问题n解解设在甲车床上加工工件设在甲车床上加工工件1、2、3的数量分别为的数量分别为x1、x2、x3,在乙车床上加工工件,在乙车床上加工工
13、件1、2、3的数量分别为的数量分别为x4、x5、x6。可建立以下线性规划模型:。可建立以下线性规划模型:1)数值问题)数值问题例例2 已知:游泳池的长已知:游泳池的长length和宽和宽wide,求面积求面积area。分析:分析:1.1什么是数据结构什么是数据结构(1)问题涉及的对象:问题涉及的对象:length,wide,area是实数是实数可用数值表示可用数值表示;(2)对象之间的关系)对象之间的关系:area=length wide可用方程或可用方程或函数表示函数表示;(3)数据存储:)数据存储:可用程序设计语言中的实型变量存储;可用程序设计语言中的实型变量存储;(4)问题求解:)问题求
14、解:用某种计算方法求解;用某种计算方法求解;程序:main()int len,wide,area;scanf(“%d%d%n”,&len,&wide);area=len*wide;printf(“area=%d”,area);可见,对于数值问题,可见,对于数值问题,对象之间的关系通常可以用对象之间的关系通常可以用方程或函数表达方程或函数表达,只要能列出表达对象之间关系的,只要能列出表达对象之间关系的方程或函数,找到求解方程或函数的方法,就可以方程或函数,找到求解方程或函数的方法,就可以编写程序了。编写程序了。n求一组(求一组(n个)整数中的最大值。个)整数中的最大值。n算法:基本操作是两两比较
15、,求两个数的大小算法:基本操作是两两比较,求两个数的大小n模型:?模型:?1.1什么是数据结构什么是数据结构1.1什么是数据结构什么是数据结构2)非数值问题)非数值问题应用举例应用举例1 电话号码查询系统电话号码查询系统应用举例应用举例2 学籍档案管理学籍档案管理应用举例应用举例3 全排列问题全排列问题应用举例应用举例4 制定教学计划制定教学计划数值问题与非数值问题有什么不同数值问题与非数值问题有什么不同举例举例1-电话号码查询系统电话号码查询系统设有一个电话号码薄,它记录了设有一个电话号码薄,它记录了N个人的名字和个人的名字和其相应的电话号码,假定按如下形式其相应的电话号码,假定按如下形式(
16、a1,b1)(a2,b2)(an,bn)其中其中ai,bi(i=1,2n)分别表示某人的名字和分别表示某人的名字和对应的电话号码对应的电话号码要求设计一个算法,当给定任何一个人的名字时,要求设计一个算法,当给定任何一个人的名字时,该算法能够打印出此人的电话号码该算法能够打印出此人的电话号码;如果该电话簿中如果该电话簿中根本就没有这个人,则该算法也能够报告没有这个人根本就没有这个人,则该算法也能够报告没有这个人的反馈信息的反馈信息举例举例2-学籍档案管理学籍档案管理假设一个学籍档案管理系统包含如下表假设一个学籍档案管理系统包含如下表1-1所示的学生信息所示的学生信息表表表表1-11-1特点特点?
17、特点特点:每个学生的信息占据一行,所有学生的信息按学号每个学生的信息占据一行,所有学生的信息按学号顺序依次排列构成一张表格顺序依次排列构成一张表格表中每个学生的信息依据学号的大小存在着一种前表中每个学生的信息依据学号的大小存在着一种前后关系,这就是后关系,这就是线性结构线性结构对它的操作通常是插入某个学生的信息,删除某个对它的操作通常是插入某个学生的信息,删除某个学生的信息,更新某个学生的信息,按条件检索某学生的信息,更新某个学生的信息,按条件检索某个学生的信息等等个学生的信息等等123123 132 213 231 321 312 132 213 231 321 312 1241241234
18、 1243 1324 1342 1423 1432 1234 1243 1324 1342 1423 1432 等等举例举例3输出输出n个对象的全排列个对象的全排列解决解决图图 1-1 3个对象的全排列过程个对象的全排列过程(a1)(a2)(a3)(a4)(a5)(a)计算机和人对奕问题l l 在求解过程中,所处理的数据之间具有层次关系,这是在求解过程中,所处理的数据之间具有层次关系,这是树形结构树形结构l l 对它的操作有:建立树形结构,输出最低层结点内容等等对它的操作有:建立树形结构,输出最低层结点内容等等在制定教学计划时,需要考虑各门课程的开设在制定教学计划时,需要考虑各门课程的开设顺序
19、。有些课程需要先导课程,有些课程则不需要,顺序。有些课程需要先导课程,有些课程则不需要,而有些课程又是其他课程的先导课程。比如,计算而有些课程又是其他课程的先导课程。比如,计算机专业课程的开设情况如下表机专业课程的开设情况如下表1-2所示:所示:举例举例44制定教学计划制定教学计划表表表表1-21-2课程先后关系的图形描述形式c1c9c4c2c12c10c11c5c3c6c7c8图图 1-2 计算机专业必修课程开设先后关系计算机专业必修课程开设先后关系1 1)问题涉及的对象:问题涉及的对象:课程课程可用课程名表示可用课程名表示 不能用数值表示不能用数值表示2 2)对象之间的关系对象之间的关系:
20、需要考虑各门课程的开设顺序。有些课程是某些课程的需要考虑各门课程的开设顺序。有些课程是某些课程的先导课程。必须先开先导课程,再开后续课程。先导课程。必须先开先导课程,再开后续课程。课程之间的这种关系不能用方程或课程之间的这种关系不能用方程或 函数表示函数表示3 3)数据及数据之间的关系如何存储?数据及数据之间的关系如何存储?4 4)如何求解如何求解?特点特点n课程之间的先后关系用课程之间的先后关系用图结构图结构描述描述n通过实施创建通过实施创建图结构图结构,按要求将图结构,按要求将图结构中的顶点进行线性排序中的顶点进行线性排序从应用问题涉及的对象来分可分为从应用问题涉及的对象来分可分为数值问题
21、数值问题 非数值问题非数值问题数值问题数值问题就是我们平时所说的计算问题,如已知圆的就是我们平时所说的计算问题,如已知圆的半径,要求圆的面积半径,要求圆的面积非数值问题非数值问题就是问题中涉及的模型不能用数学方程来就是问题中涉及的模型不能用数学方程来表达的那些问题表达的那些问题小结:小结:n数据结构是一门研究数据结构是一门研究非数值计算非数值计算的程序设计问题的程序设计问题中计算机的中计算机的操作对象操作对象及其之间及其之间关系与操作关系与操作的学科。的学科。1.1 1.1 什么是数据结构需求分析需求分析总体设计总体设计模块分割模块分割建立数学模型建立数学模型设计解数学模型的算法设计解数学模型
22、的算法程序编制程序编制调试调试结果结果n数据结构涉及到:数学模型的建立和对该模型具体数据结构涉及到:数学模型的建立和对该模型具体实现的对应的算法实现的对应的算法一个课题的解决原则一个课题的解决原则求解梁架结构中应力的数学模型是线性方程求解梁架结构中应力的数学模型是线性方程组组预报人口增长情况的数学模型是微分方程预报人口增长情况的数学模型是微分方程分析问题分析问题提取操作对象提取操作对象找出操作对象之间的关系找出操作对象之间的关系用数学的语言加以描述用数学的语言加以描述45 数据结构研究什么问题问题数学模型数学模型实现实现机外表示机外表示即外表示即外表示存储结构存储结构实现实现逻辑结构逻辑结构基
23、本运算基本运算处理要求处理要求机外表示机外表示数据结构的研究内容:数据结构的研究内容:(1)要对所加工的对象进行逻辑组织。要对所加工的对象进行逻辑组织。(2)如何把加工对象存储到计算机中去?如何把加工对象存储到计算机中去?(3)数据运算。数据运算。建模建模求精求精1.1 1.1 什么是数据结构要求:要求:掌握各类基本掌握各类基本数据结构类型数据结构类型和相应的和相应的存储结构存储结构要求学生掌握要求学生掌握典型算法典型算法思想及程序实现;思想及程序实现;能针对给定问题,选择相适应的能针对给定问题,选择相适应的数据结构数据结构,并能,并能设计和分析设计和分析算法,提高复杂程序设计的能力。算法,提
24、高复杂程序设计的能力。提高提高阅读算法阅读算法的能力的能力为后继课的学习及从事软件开发打好基础。为后继课的学习及从事软件开发打好基础。1.1 1.1 什么是数据结构上节回顾:逻辑结构唯一逻辑结构唯一存储结构不唯一存储结构不唯一运算的实现依赖于运算的实现依赖于存储结构存储结构 n数据结构是一门研究数据结构是一门研究非数值计算非数值计算的程序设计问题的程序设计问题中计算机的中计算机的操作对象操作对象及其之间及其之间关系与操作关系与操作的学科。的学科。1.1 1.1 什么是数据结构 数据数据DataData:客观对象的符号表示。客观对象的符号表示。在计算机科学中在计算机科学中,数据的含义非常广泛,把
25、一切能够输入到计算机中数据的含义非常广泛,把一切能够输入到计算机中并被计算机程序处理的信息,包括文字、表格并被计算机程序处理的信息,包括文字、表格,图象图象等,都称为数据。等,都称为数据。例如:课程名,地名,书名都是数据。例如:课程名,地名,书名都是数据。再如,一个个人书库管理程序所要处理的数据可能再如,一个个人书库管理程序所要处理的数据可能是一张如是一张如表表1-1所示的表格。所示的表格。数据数据数据元素数据元素数据项数据项1.2基本概念和术语基本概念和术语表表1-1个人书库个人书库数据元素数据元素DataElement:数据的基本单位。在数据的基本单位。在计算机程序中通常作为一个整体考虑和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言版 严蔚敏 绪论 教案
限制150内