



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 数据结构概论 本章主要介绍以下内容 数据结构研究的主要内容1 数据结构中涉及的基本概念2 算法的概念、描述方法以及评价标准3 课时分配:1、2,两个学时,3两个学时 重点、难点:ADT、算法的概念、描述方法以及评价标准第一节 数据结构研究的主要内容当今计算机应用的特点: 所处理的数据量大且具有一定的关系; 对其操作不再是单纯的数值计算,而更多地是需要对其进行组织、管理和检索。应用举例1-学籍档案管理假设一个学籍档案管理系统应包含如下表所示的学生信息。学生基本情况学 号姓 名性 别出生年月.99070101李 军男80.12.99070102王颜霞女81.2.99070103孙 涛男80.9.99070104单晓宏男81.3.特点: 每个学生的信息占据一行,所有学生的信息按学号顺序依次排列构成一张表格; 表中每个学生的信息依据学号的大小存在着一种前后关系,这就是我们所说的线性结构; 对它的操作通常是插入某个学生的信息,删除某个学生的信息,更新某个学生的信息,按条件检索某个学生的信息等等。应用举例2-输出n个对象的全排列输出n个对象的全排列可以使用下图所示的形式描述。结论计算机的操作对象的关系更加复杂,操作形式不再是单纯的数值计算,而更多地是对这些具有一定关系的数据进行组织管理,我们将此称为非数值性处理。要使计算机能够更有效地进行这些非数值性处理,就必须弄清楚这些操作对象的特点,在计算机中的表示方式以及各个操作的具体实现手段。这些就是数据结构这门课程研究的主要内容。第二节 基本概念和术语数据 是对客观事物的符号表示。在计算机科学中其含义是指所有能够输入到计算机中并被计算机程序处理的符号集合。数据元素 是数据集合中的一个实体,是计算机程序中加工处理的基本单位。数据元素按其组成可分为简单型数据元素和复杂型数据元素。简单型数据元素由一个数据项组成,所谓数据项就是数据中不可再分割的最小单位;复杂型数据元素由多个数据项组成,它通常携带着一个概念的多方面信息。数据结构 简单地说,就是相互之间存在一种或多种特定关系的数据元素的集合。常见的数据结构有:线性结构、树形结构和图形结构。=(集合关系)逻辑结构 数据结构中所说的关系实际上是指数据元素之间的逻辑关系,又称此为逻辑结构。存储结构(物理结构)=(散列、索引)是指数据结构在计算机存储器中的具体实现。与孤立的数据元素表示形式不同,数据结构中的数据元素不但要表示其本身的实际内容,还要表示清楚数据元素之间的逻辑结构。常见的存储结构顺序存储结构:特点是借助于数据元素的相对存储位置来表示数据元素之间的逻辑结构;链式存储结构:特点是借助于指示数据元素地址的指针表示数据元素之间的逻辑结构。第三节 算法算法的概念算法是解决某个特定问题的一种方法或一个有限过程。 计算机对数据的操作可以分为数值性和非数值性两种类型。在数值性操作中主要进行的是算术运算;而在非数值性操作中主要进行的是检索、排序、插入、删除等等。设计算法的基本过程 通过对问题进行详细地分析,抽象出相应的数学模型; 确定使用的数据结构,并在此基础上设计对此数据结构实施各种操作的算法; 选用某种语言将算法转换成程序; 调试并运行这些程序。 算法应该具有下列五个特性(1)有穷性:一个算法必须在执行有穷步之后结束。(2)确定性:算法中的每一步,必须有确切的含义,在他人理解时不会产生二义性。 (3)动态性:算法中描述的每一步操作都可以通过已有的基本操作执行有限次实现。(4)输入:一个算法应该有零个或多个输入。(5)输出:一个算法应该有一个或多个输出。这里所说的输出是指与输入有某种特定关系的量。举例问题:按从小到大的顺序重新排列x,y,z三个数值的内容。算法:(1)输入x,y,z三个数值;(2)从三个数值中挑选出最小者并换到x中;(3)从y,z中挑选出较小者并换到y中;(4)输出排序后的结果。算法的描述选择算法描述语言的准则(1)该语言应该具有描述数据结构和算法的基本功能;(2)该语言应该尽可能地简捷,以便于掌握、理解;(3)使用该语言描述的算法应该能够比较容易地转换成任何一种程序设计语言。 类C描述语言是通过对C语言进行精心筛选保留的一个核心子集,并为了便于描述,又做了若干扩展修改,从而,增强了语言的描述功能。(略介绍)(1)预定义常量及类型(略介绍)#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -1数据元素被约定为Elemtype 类型,用户需要根据具体情况,自行定义该数据类型。(2)算法描述为以下的函数形式:函数类型 函数名(函数参数表)语句序列;为了简化函数的书写,提高算法描述的清晰度,我们规定除函数参数表中的参数需要说明数据类型外,函数中使用的局部变量可以不做变量说明,必要时给出相应的注释即可。另外,在书写算法时,应该养成对重点语句段落添加注解的良好习惯。(3)在算法描述中可以使用的赋值语句形式有:简单赋值 变量名 = 表达式;串联赋值 变量名1 = 变量名2 = . = 变量名n = 表达式;成组赋值 (变量名1,.,变量名n)=(表达式1,.,表达式n);结构赋值 结构名1 = 结构名2;结构名 =(值1,值2,.,值n);条件赋值 变量名 = 条件表达式 ? 表达式1:表达式2;交换赋值 变量名1 变量名2;(4)在算法描述中可以使用的选择结构语句形式有:条件语句1 if (表达式) 语句;条件语句2 if (表达式) 语句;else 语句;开关语句1 switch (表达式) case 值1:语句序列1;break;case 值2:语句序列2;break;.case 值n:语句序列n;break;default:语句序列n+1;开关语句2 switch case 条件1:语句序列1;break;case 条件2:语句序列2;break;.case 条件n:语句序列n;break;default:语句序列n+1;(5)在算法描述中可以使用的循环结构语句形式有:for循环语句 for (表达式1;循环条件表达式;表达式2) 语句;while循环语句 while (循环条件表达式) 语句;do-while循环语句 do 语句序列; while (循环条件表达式);(6)在描述算法中可以使用的结束语句形式有:函数结束语句 return 表达式;return;case或循环结束语句 break;异常结束语句 exit(异常代码);(7)在算法描述中可以使用的输入输出语句形式有:输入语句 scanf( 格式串,变量名1,.,变量名n);输出语句 printf( 格式串,表达式1,.,表达式n);方括号( )中的内容是可以省略的部分。(8)在算法描述中使用的注释格式为:单行注释 /文字序列(9)在算法描述中可以使用的扩展函数有: 求最大值 max(表达式1,.,表达式n);这个函数返回参数表中n个表达式计算结果中的最大值。求最小值 min(表达式1,.,表达式n);这个函数返回参数表中n个表达式计算结果中的最小值。【举例1-4】用类C描述将三个数值排序的算法。viod Three_Sort( int *x,int *y,int *z)/将x,y,z三个指针所指示的内容按从小到大的顺序重新排列if (*y*x&*y*z) *x*y; /挑选出最小的数值并换到x指针所指的存储单元中else if (*z*x&*z*y) *x*z;if (*z*y) *y*z; /在y和z所指示的存储单元中挑选出较小者换到y中算法的评价算法的评价标准(1) 正确性:要求算法能够正确地执行预先规定的功能,并达到所期望的性能要求。(2)可读性:为了便于理解、测试和修改算法,算法应该具有良好的可读性。(3)健壮性:算法中拥有对输入数据、打开文件、读取文件记录、分配内存空间等操作的结果检测,并通过与用户对话的形式做出相应的处理选择。 (4)时间与空间效率:算法的时间与空间效率是指将算法变换为程序后,该程序在计算机上运行时所花费的时间及所占据空间的度量。算法的时间效率算法的时间效率主要由两个因素决定: 所需处理问题的数据量大小,数据量大,所花费的时间就多; 在解决问题的过程中,基本操作的执行次数。时间特性的分析如果我们将一个算法所花费的时间设计成一个以数据量n为自变量的函数T(n),这个函数在正整数定义域范围内一定是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市场行销管理
- 浙江省温州市鹿城区温州市实验中学2024-2025学年初三综合练习化学试题卷(三模)含解析
- 湖南省长沙市湖南师大附中教育集团2025届初三9月月考化学试题含解析
- 新疆司法警官职业学院《食品研究开发》2023-2024学年第二学期期末试卷
- 云南艺术学院文华学院《地球系统科学》2023-2024学年第二学期期末试卷
- 南阳医学高等专科学校《植物保护学》2023-2024学年第二学期期末试卷
- 哈尔滨工程大学《MySQL数据库》2023-2024学年第二学期期末试卷
- 郑州汽车工程职业学院《工程伦理学》2023-2024学年第一学期期末试卷
- 广东韶关乐昌市2024-2025学年三年级数学第二学期期末学业质量监测试题含解析
- 上海中华职业技术学院《市场营销》2023-2024学年第二学期期末试卷
- JTG-T5521-2019公路沥青路面再生技术规范
- 第8课《良师相伴 亦师亦友》第1框《良师相伴助力成长》-【中职专用】《心理健康与职业生涯》同步课堂课件
- 服装设计部门绩效考核方案
- 2024年上海市八年级语文下学期期中考试复习(课内古诗文+课外文言文)
- 新能源汽车技术职业生涯规划
- 广东省深圳市龙岗区2022-2023学年八年级下学期期中测试英语试题
- 清明时节的中医养生
- 小学科学论文17篇
- 2024年四川雅砻江流域水电开发有限公司招聘笔试参考题库含答案解析
- 霍兰德兴趣岛课件
- 城市环境卫生作业经费定额(试行)
评论
0/150
提交评论