数据结构(C语言版)第1章绪论.ppt
《数据结构(C语言版)第1章绪论.ppt》由会员分享,可在线阅读,更多相关《数据结构(C语言版)第1章绪论.ppt(59页珍藏版)》请在三一办公上搜索。
1、数据结构(C语言版)Data Structure,主讲教师 鄂寒梅E-mail:,学 分:3 总学时:64教材:数据结构(C语言版)严蔚敏、吴伟民-清华大学出版社数据结构题集(C语言版)严蔚敏、吴伟民-清华大学出版社,编程基础考研课程计算机等级考试课程程序员考试课程,课程重要性,本课程的体系结构,第一章 绪论 介绍数据、数据结构和抽象数据类型的概念。第二章 第七章 基本数据结构 从抽象数据类型的角度,分别讨论线性表、栈和队列、串、数组和广义表、树、图等基本数据结构及其应用。第八章 动态存储管理 介绍操作系统和编译程序中涉及的 动态存储管理的基本技术。,第九章 第十一章 查找和排序 介绍了各种实
2、现方法,并着重从时间上进行定性或定量的分析和比较。第十二章 文件结构 介绍数据库系统中组织文件的常用方法。,内 容 安 排,绪论,1、数据结构基本概念 数据、数据元素、数据对象、数据结构 和抽象数据类型等概念。2、算法及算法分析 性能分析与度量:算法的性能标准;空间复杂度度量;时间复杂度度量。,教学内容,数值计算:加工处理的对象纯粹的数值。,非数值计算,计算机应用,工业检测,过程控制,管理系统,文字处理,加工处理的对象,具有一定的结构,逻辑结构,存储结构,算法,有效地组织 计算机存储,研究对象的特性及 其相互之间的关系,有效地实现对象之 间的“运算”关系,数据结构的研究内容,为什么要学数据结构
3、?,1.1 什么是数据结构,抽象数学模型,计算机解题步骤,设计算法,编程、调试、运行,分析问题,提取操作对象,找出操作对象之间的关系,用数学语言描述,数据结构,例1:计算机电话号码查询系统。,算 法:查询、插入、修改、删除,线性结构,线性表,操作对象:单位名,号码,关 系:线性关系,例2:计算机和人对弈问题。,非线性结构,树,操作对象:格局(棋盘状态),关 系:非线性关系(由比赛规则决定),例3、多叉路口交通灯的管理问题。,在多叉路口需设几种颜色的交通灯才能使车辆相互之间不碰 撞,又能达到最大流通量。,非线性结构,图,操作对象:通路,关 系:非线性关系(由问题的要求决定),程序设计的实质是对实
4、际问题选择一种好的数据结构,加之设计一个好的算法。,瑞士著名的计算机科学家、Pascal 语言发明者沃思(N.Wirth)教授提出:,数据结构是一门研究非数值计算的程序设计问题中计算 机的操作对象以及它们之间的关系和运算的一门学科。,数据结构是问题的数学模型。,算法(解决问题的方法)处理的对象就是数据。算法与数据 的结构密切相关,算法无不依附于具体的数据结构,数据结构直 接关系到算法的选择和效率。,要想有效地使用计算机,就必须学习数据结构。,程序=算法+数据结构,数据结构的发展史,“数据结构”作为一门独立的课程在国外是从 1968 年才开始 设立的,由美国唐 欧 克努特教授开创其最初体系,他所
5、著的 计算机程序设计技巧第一卷基本算法是第一本较系统地 阐述数据的逻辑结构和存储结构及其操作的著作。,我国于 1978 年开设本课程。,数据结构的地位,1、数据结构在计算机科学中是一门综合性的专业基础课。2、数据结构是介于数学、计算机硬件和计算机软件三者之间的 一门核心课程。3、数据结构这一门课的内容不仅是一般程序设计(特别是非数 值计算的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和应用程序的重要基 础。,是对信息的一种符号表示人们利用文字符号、数字符号以及其他规定的符号对现实世界的事物及 其活动所做的描述。,数据(Data),1.2 基本概念和术语,在计算
6、机科学中是指所有能输入到计算机中并被计 算机程序处理的符号的总称包括数值型数据和 非数值型数据(包括文字、表格、图象、声音等,都称为数据)。它是计算机操作对象的总称。,数据是个集合,可用集合的表示方法来写:数据=x|x 是计算机操作的对象,数据元素(Data Element):(也称结点),是数据(集合)中的一个“个体”,是数据的基本单位,在计算 机程序中通常作为一个整体进行考虑和处理。,数据项(data item):是数据结构中讨论的“最小单位”。,两类数据元素,不可分割的“原子”型数据元素,如:整数“5”,字符“N”等;,由多个款项构成的数据元素,其中每个款项被 称为一个“数据项”。,如描
7、述一个学生的信息的数据元素可由 3 个 数据项组成。其中的出生日期又可以由三个 数据项:“年”、“月”和“日”组成,则称“出 生日期”为“组合项”,而其它不可分割的数 据项为“原子项”。,数据对象(Data Object):,是性质相同的数据元素的集合。是数据的一个子集。,例:整数数据对象的集合可表示为 N=0,1,2,,字母字符数据对象的集合可表示为 C=A,B,Z。,数据结构(Data Structure):,是相互之间存在一种或多种 特定关系的数据元素的集合。,结构:数据元素之间的相互关系。,意为 x 和 y 之间存在“x 领先于 y”的次序关系。,长整数“321465879”可用 a1
8、=321,a2=465 和 a3=879 的集 合表示,且三者之间的次序关系必须是,a1 表示最高 3 位,a3 表示最低的 3 位,a2 则是中间 3 位。,例:假设以三个 3 位的十进制数表示一个含 9 位十进制数的“长整数”,则可用如下描述的数学模型表示:它是一个 含三个数据元素 a1,a2,a3 的集合,且在集合上存在下 列次序关系:,。,四类基本结构,集合:数据元素除了同属于一种类型 外,别无其它关系。,线性结构:一对一。,树型结构:一对多。,图状结构或网状结构:多对多。,数据结构的形式定义:,数据结构是一个二元组:Data-Structure=(D,S)其中:D 是数据元素的有限集
9、,S 是 D 上关系的有限集。,例 1-4:复数的数据结构:Complex=(C,R)其中:C 是含两个实数的集合 c1,c2,分别表示复数的实部和 虚部。R=P,P 是定义在集合 C 上的一种关系。,例 1-5:科研课题小组的数据结构:,Group=(D,R),其中:D=T,G1,Gn,S11,Snm 1 n 3,1 m 2,R=R1,R2,R1=|1 i n,1 n 3 R2=|1 i n,1 j m,1 n 3,1 m 2,操作对象的数学模型,逻辑结构(logical structure),指数据元素之间抽象化的相互关系。独立于计算机,是数据本身所固有的。,物理结构:数据的逻辑结构在计算
10、机中的存储形式(映象)。存储结构(Storage Structure)必须依赖于计算机。,位串:n 位的组合。,位(bit):二进制数的一位。计算机中表示信息的最小单位。,元素(element):计算机中用来存储数据元素的一个位串,结点(node)即数据元素在计算机中的映象。,数据域(data field):当数据元素由若干数据项组成时,位串 中对应于各个数据项的子位串。,例:十进制数值 321 可用位串 101000001 表示,字母“A”可用位串 01000001 表示。,数据结构在计算机中的表示方法,顺序映象,非顺序映象,顺序存储结构,链式存储结构,用元素在存储器中的相对位置来表示数据元
11、素之间的逻辑关系。,在每一个数据元素中增加一个存放地址的指针(pointer),用此指 针来表示数据元素之间的逻辑关系。,作业:,1.1,选择题部分 1、组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2、数据结构研究数据的()以及它们之间的相互关系。(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3、在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构,填空题 1.数据逻辑结构包括()、()和()三种类型,树形结构和图形结构
12、合称为()。2.线性结构中元素之间存在()关系,树形结构中元素之间 存在()关系,图形结构中元素之间存在()关系。,数据类型:(data type),数据类型是一组性质相同的值的集合以及定义于这个值集合 上的一组操作的总称。值的集合+值集合上的一组操作,例如,C 语言中的 int 型变量,是指由-32768 到 32767 范围 中的值构成的集合及一组操作(加、减、乘、除、乘方等)的总 称。而 Unsigned int 型变量,则是指由 0 到 65535 范围中的值构 成的集合及一组操作(加、减、乘、除、乘方等)的总称。,约束变量或常量的取值范围,约束变量或常量的操作。,在用高级程序设计语言
13、编写的程序中,必须对程序 中出现的每个变量、常量或表达式,明确说明它们 所属的数据类型。例如,C 语言中的基本数据类型 有:整型、字符型、实型(包括单精度型和双精度 型)及枚举型。,数据类型的作用,数据类型的作用,是解释计算机内存中信息含义的一种手段。,实现了信息的隐蔽,将用户不 必了解的细节封装在类型中。,抽象特性,强调的是其所能完成的功能以及它和外部用 户的接口(即外界使用它的方法)。,所有高级语言中都有“整型”数据类型,它们的实现方法可 以各自不同,但对程序员而言,它们是“相同”的。程序员使用 它们时仅需了解它们的数学特性,而不需要了解它们在语言中 是如何实现的。换句话说,各种语言中实现
14、的是同一个“整数 类型”,而这个“整数类型”的定义仅对“整数的数学特性”有明 确规定。,01000001,int:65(十进制数)char:A,抽象数据类型(Abstract Data Type,简称ADT):,数学模型+定义在该模型上的一组操作。,数据结构+定义在此结构上的一组操作。,ADT 抽象数据类型名 数据对象:数据对象的定义数据关系:数据关系的定义基本操作:基本操作的定义 ADT 抽象数据类型名,抽象数据类型(Abstract Data Type)的描述方法:,抽象数据类型可用(D,S,P)三元组表示,其中,D 是数据对 象,S 是 D 上的关系集,P 是对 D 的基本操作集。,用伪
15、码(不真正执行的符号)描述,基本操作的定义格式:,赋值参数:只为操作提供输入值;,引用参数:以&打头,除了可提供输入 值外,还将返回操作结果。,描述操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应出错信息。,说明操作正常完成之后,数据结构的变化状况和 应返回的结果。,基本操作名(参数表),初始条件:初始条件描述,操作结果:操作结果描述,例:抽象数据类型“复数”的定义,ADT Complex 数据对象:D=e1,e2|e1,e2RealSet,基本操作:InitComplex(&Z,v1,v2)操作结果:构造复数 Z,其实部和虚部分别被赋以参数 v1 和 v2 的值。De
16、stroyComplex(&Z)初始条件:复数 Z 已存在。操作结果:复数 Z 被销毁。GetReal(Z,&realPart)初始条件:复数 Z 已存在。操作结果:用realPart 返回 Z 的实部值。GetImag(Z,&ImagPart)初始条件:复数 Z 已存在。操作结果:用ImagPart 返回 Z 的虚部值。Add(Z1,Z2,&sum)初始条件:Z1,Z2 是复数。操作结果:用sum 返回 z1,z2 的和值。ADT Complex,数据关系:R1=|e1是复数的实部,e2是复数的虚部,用两个实数来表示复数,将复数定义为两个实数的有序对,并约定实部是前驱,虚部是后继。,例 1-
17、6:抽象数据类型三元组的定义:ADT Triplet 数据对象:D=e1,e2,e3|e1,e2,e3ElemSet 数据关系:R1=,基本操作:InitTriplet(&T,v1,v2,v3)操作结果:构造了三元组 T,元素 e1,e2 和 e3分别被 赋以参数 v1,v2 和 v3 的值。,DestroyTriplet(&T)操作结果:三元组 T 被销毁。Get(T,i,&e)初始条件:三元组 T 已存在,1 i 3。操作结果:用 e 返回 T 的第 i 元的值。Put(&T,i,e)初始条件:三元组 T 已存在,1 i 3。操作结果:改变 T 的第 i 元的值为 e。,IsAscendi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言版 绪论

链接地址:https://www.31ppt.com/p-6578834.html