版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构(C++版)普通高等教育“十一五”国家级规划教材
高等学校计算机系列1课程基本要求学分:5共计16周周学时:4(讲)+2(实验)成绩构成:考勤(到课堂听课)10%完成书面作业10%完成上机实验作业10%期末卷面考试70%2第1章绪论
为解决现实世界中某个复杂问题,设计一个高效适用的程序。需要解决怎样合理地组织数据、建立合适的数据结构,怎样设计适用的算法,以提高程序执行的时间效率和空间效率。“数据结构”就是在此背景下逐步形成、发展起来的。主要内容: 数据结构的基本概念 抽象数据类型
C++语言简介 算法描述与分析3本章分为二讲第1讲1.1问题的引入
1.2数据结构的基本概念1.3抽象数据类型第2讲1.4C++语言
1.5算法描述与分析
4数据结构第1章绪论第1讲51.1问题的引入1.1.1引言资料档案类问题;棋类对奕、院系机构问题;
交通或通信网问题;非数值计算6资料档案类问题
线性表7棋类对奕、院系机构问题
树结构8交通或通信网问题
图结构91.1问题的引入1.1.2“数据结构”课程研究内容
研究内容包括数据的逻辑结构、数据在计算机内的存储结构以及定义在它们之上的一组运算(插入、删除、查找、排序等)。
数据结构是专业基础课、核心课。
101.2数据结构的基本概念1.2.1计算机领域中的数据1.数据(data)
是描述客观事物的数字、字符以及所有能够输入到计算机中并被计算机处理的信息的总称。
11
1.2.1计算机领域中的数据2.数据元素(DataElement)
是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。数据元素除了可以是一个数字或一个字符串以外,也可以由一个或多个数据项组成。数据项(DataItem)是有独立含义的数据的最小单位,数据项有时也称为字段(field)。121.2.1计算机领域中的数据3.数据对象(DataObject)
是具有相同性质的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2,…},再如:字母字符数据对象是集合C={′A′,′B′,…,′Z′}。图1.1中的学籍表也可看成一个数据对象。13再看实例:图书档案类问题
线性表数据项数据元素数据对象指整个表141.2.2数据结构相关概念
1.数据的逻辑结构(DataStructure)
是带有结构的数据元素的集合,它是指数据元素之间的相互关系,即数据的组织形式。把数据元素间的逻辑上的联系,称之为数据的逻辑结构,如:线性结构、树结构、图结构。特点:抽象关系,独立于计算机。15数据逻辑结构的形式化描述数据结构的形式化描述是:DataStructure=(D,R)其中,D代表数据对象,R代表数据关系。例1.1线性表结构List
=
(D,R)D
=
{ai|ai∈ElemSet,i
=
1,2,…,n,n≥0}R
=
{<ai-1,ai>|ai-1,ai∈D,i=2,3,…,n}16数据逻辑结构的形式化描述例1.2复数结构Complex
=
(D,R)D
=
{c1,c2|c1,c2∈float}R
=
{<c1,c2>}c1,c2分别代表复数的实部和虚部其中,D代表数据对象,仅有两个实数;
R代表数据关系,体现数据之间的逻辑结构;
c1,c2分别代表复数的实部和虚部。17数据逻辑结构的形式化描述例1.3树形结构某课题小组有1位教师T,3名研究生G,6名本科生S。他们的关系是,教师指导3名研究生,每个研究生指导2名本科生。
Group
=
(D,R)D
=
{T,Gi,Sij,i=1,2,3,j=1,2,}R
=
{R1,R2}R1
=
{<T,Gi>i=1,2,3,}R2
=
{<Gi,Sij>i=1,2,3,j=1,2,}
根据对课题研究小组的形式化描述,可得出如图所示树形结构。18
2.数据的存储结构
数据的逻辑结构在计算机存储设备中的映象被称为数据的存储结构,也可说数据的存储结构是逻辑结构在计算机存储器里的实现,又称物理结构。依赖于计算机。常见存储结构有:顺序存储结构(顺序映象)、链式存储结构(非顺序映象)。1.2.2数据结构相关概念19顺序存储结构(顺序映象)在计算机存储器里实现,又称物理结构。
a1
a2
…
…
…an
在内存中地址是连续的20链式存储结构(非顺序映象)在计算机存储器里实现,又称物理结构。
a2
…
a3
…
…a1
在内存中地址不一定是连续的Ha1a2an……^H211.3抽象数据类型1.3.1数据类型(DateType)
数据类型实质上是一组值的集合和定义在该集合之上的一组操作的总称。数据类型(DataType)是和数据结构密切相关的一个概念,它最早出现在高级语言中。例如:intkey;只需了解整数的加、减、乘法或取模运算的抽象特性,不必了解“位运算”细节。221.3.2抽象数据类型(ADT)抽象数据类型(AbstractDateType
)是指基于一类逻辑关系的数据类型以及定义在这个类型之上的一组操作。抽象数据类型与其在计算机内如何表示和实现无关。抽象数据类型(ADT)和数据类型(DataType)实质上是一个概念。整数类型就是一个ADT实例。23抽象数据类型的描述一般格式:ADTname{
数据对象:D={……}
数据关系:R={……}
基本操作:创建;输出;插入;删除;等等;}ADTname;24线性表的抽象数据类型描述:ADTLinear_list{
数据对象:D={ai|ai∈ElemSet,i=1,2,…,n,n≥0;}
数据关系:R={<ai-1,ai>|ai-1,ai∈≥D,i=2,3,…,n}
基本操作:设L为Linear_list类型的线性表初始化空线性表;
求线性表表长;
取线性表的第i个元素;
在线性表的第i个位置插入元素x;
删除线性表的第i个元素;
等等;}ADTLinear_list;线性表ADT描述与线性表的形式化描述(List=(D,R))相似,只是ADT增加了对数据对象的若干操作的描述。25复数抽象数据类型的描述:ADTcomplex{
数据对象:D={c1,c2︱c1,c2∈FloatSet}
数据关系:R={<c1,c2>c1,c2分别为实部、虚部}
基本操作:创建一个复数;
输出一个复数;
求两个复数相加之和;
求两个复数相减之差;
求两个复数相乘之积;
等等;}ADTcomplex;261.3.3抽象数据类型的实现抽象数据类型的具体实现依赖于所选择的高级语言的功能。有三种方法:面向过程的程序设计—C语言“包”、“模块”的设计方法--是一种过渡面向对象的程序设计–C++语言等271.3.3抽象数据类型的实现
面向过程的程序设计,长期以来作为程序设计的主流方法,现仍是程序设计入门和基础教育的主流方法。根据所要求的操作设计出相应的子程序或子函数,一个源程序由若干个函数构成。当前广泛使用的C语言就是一种典型的面向过程语言。详见例1.4
面向对象的程序设计(ObjectOrientedProgramming,OOP),正在逐步成为当今程序设计的主流方法。在面向对象的程序设计语言中,存储结构和操作函数的说明被封装在一个整体结构中。详见例1.5
28小结“数据结构”课程的主要内容可以概括如下:数据逻辑结构存储结构基本运算线性表顺序存储结构插入删除树链式存储结构排序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023-2024学年广东省广州市海珠区九年级(上)期末英语试卷
- 2024年广东省深圳市龙华区中考英语二模试卷
- 人教版九年级语文上册教案
- 第四单元《三国两晋南北朝时期:政权分立与民族交融》-2024-2025学年七年级历史上册单元测试卷(统编版2024新教材)
- 消防检查要点二十条
- 职业学院机电一体化技术专业人才培养方案
- 半导体芯片制造设备市场需求与消费特点分析
- 搁物架家具市场需求与消费特点分析
- 外科用肩绷带市场需求与消费特点分析
- 人教版英语八年级上册写作专题训练
- 第2课 色彩的感染力 (5) 教案 初中美术人教版八年级上册(2021-2022)
- 幼儿园家园共育培训PPT课件
- 4.2《各种各样的土壤》教案公开课
- 学会面对陌生人PPT学习教案
- 水泥稳定碎石试验段施工方案
- 中国建筑抗震设计规范的发展和演变
- 地方课程五年级上册教案
- 航海学天文定位第四篇天文定位第3章
- 小巴掌童话阅读指导42页PPT课件
- 南京大学高等代数期末考试题及答案
- 食堂每日巡查记录表
评论
0/150
提交评论