第一章 数据结构绪论new


内容
• 实例求解
。数据结构研究的问题 • 数据结构的基本概念 • 算法的基本概念
• 算法的评价
本课程研究的问题
原始数据 程序 结果数据
数据处理的种类和能力
数 (整数,实数) 字符

数值数据
文字 图形 图象 声音
字符串
数据
非数值数据
数据:客观对象的符号表示 数学中的整数、实数, 课程名,地名、书名
用计算机解决问题的步骤
问题分析阶段: 弄清所要解决的问题是什么,并使用 规范说明 语言或数学语言给出系统的需求模型 设计阶段: 建立程序系统的结构,重点是算法的设计和 数据结构的设计 编码阶段: 采用适当的程序设计语言,编写出可执行的程序 程序测试和维护:发现和排除在前几个阶段中产生 的错误,经测试通过的程序便可投入运行,在运行 过程中还可能发现隐含的错误和问题
例2-集合抽象数据类型





ADT Set is Operations isEmpty 判断集合是否是空集合 add 给集合增加一个元素 remove 删除集合中的一个元素 isIn 判断一个元素是否在当前集合中 end ADT Set
数据结构基本概念——基本术语
结构(Structure):

抽象数据类型的实质是抽象出了数据类 型的使用要求,而把它的具体表示方式 和运算的实现细节都隐藏起来。 抽象数据类型仅仅规定了数据类型应该 具有的行为(操作)。一旦抽象数据类 型被正确实现,就好像程序设计语言中 所提供的数据类型那样,可以被自由使 用。

数据结构基本概念——基本术语
抽象数据类型意义和作用(2)
要求 • 认真准备,有备而来 • 严禁玩游戏 • 培养独立解决问题的能力
交作业的时间:
• 按时交上次布置的作业,现场运行 并评判(百分制)
答疑安排
平时有问题可在课下及上机时提问


有何意见及建议请及时反映
第一章 绪 论
•从问题到程序 •抽象数据类型 •数据结构 •算法
第一章 绪 论
问题:
• • • • • • • 为什么要学习数据结构 什么是数据类型 什么是抽象数据类型 数据结构的分类 什么是算法 什么是算法的时间、空间复杂度 如何计算算法的时间复杂度
整数的抽象数据类型 三元组(K,R,P)表示:
–K={整数集合} –R={<0,1>,<1,2>,<2,3>,…} –P={+,-,*,/,%}
ADT Circle is
例1-抽象数据类型圆
area 计算圆的面积
operations
circumference
计算圆的周长
getRadius
获取圆的半径 setRadius 设置圆的半径 end ADT Circle
实例求解-算法设计
常见算法: 穷举法、贪心法、回溯法、分治法、动态规划法、分支 界限 法……… 选用贪心法,贪心法思想为: 先用一种颜色给尽可能多的结点上色; 然后用另一种颜色在未着色结点中给尽可能多的结点上色; 如此反复直到所有结点都着色为止。 选用一种新颜色给结点上色时要做以下工作: 1.选出一个未着色的结点并用该新的颜色上色。 2.寻找那些仍未着色的结点,如果某结点与用新颜色着色的结点 没有边相连,则可将这个结点用该颜色上色。
授课内容
第一章 概论
• 算法的概念,算法的分析
• 数据结构的概念、数据结构的分类
授课内容
第二章 线性表
• 线性表的基本概念 • 线性表的顺序存储实现(顺序表)
•线性表的链接存储实现(链接表)
•顺序表的基本运算 •线性表的应用(Josephus问题)
授课内容
第三章 字符串
• 字符串的基本概念 • 字符串的基本操作 • 模式匹配问题
解释为把某些成分(成员,元素,原子等) 按一定的规律或方式组织在一起的实体。或解释 为把某些成分组织在一起的方式。
例如:
人体结构、土木结构、分子结构、 文章结构、数据结构
数据结构是以数据为成员的结构。
数据结构基本概念——基本术语
数据结构(Data Structure):是计算机中表示
(存储)的、具有一定逻辑关系和行为特征的 一组数据。其中的每一个数据元素称为这个 结构的一个结点。 数据结构(Data Structure):可以理解为抽象 数据类型的物理实现。 主要解决的两个问题:
2、结构中各元素的存储方式 3、结构具有的行为特征
数据结构基本概念
树形结构: 例2:问题:计算机和人对弈 模型:树形结构
数据结构基本概念
图形结构: 例 3: 问题:多叉路口交通灯的管理 模型:图形结构
C B A E
D
图 1.1 一个交叉路口的模型
数据结构基本概念——基本术语类型(t Nhomakorabeape):
本课程研究的问题
数据结构的研究问题: 非数值数据之间的结构关系, 及如何表示,如何存储,如何处理。
本课程讨论的问题: 应用中常用的几种数据间的结构关系, 及如何表示,如何存储,如何处理。
数据结构基本概念
数据结构主要关心的是下列三个方面:
1、结构中各元素之间的逻辑关系: 线性结构:如图书馆的书目索引 树形结构: 图形结构:
是一组值(或者对象)的集合。

例如:


布尔作为一种类型是由真(true)和假 (false)两个值组成的集合; 布尔向量也可以作为一种类型,它的每个值 是一个由true或false构成的向量。
数据结构基本概念——基本术语

数据类型(data type) 通常是指在计算机(语言)中可以使用的一 个类型,它不但包括这个类型的值的集合,还包 括定义在这个类型上的一组操作。
一种染色结果
AB
AC
AD
BA
BC
BD
DA
DB
DC
EA
EB
EC
ED
图1.2
交叉路口的图示模型
实例求解-程序设计(贪心法)
首先,为问题中所有有关数据设计适当的表示形式, 不仅包括需要表示的结点和连接,可能还有为计算过程 的实现而用的辅助性数据结构。然后选择一种适当的程 序设计语言实现这些数据结构,并在设计好的数据结构 上精确地描述上面提出的算法,完成一个程序,使之能 在计算机上运行。 假设需要着色的图是G,集合V1包括图中所有未被 着色的结点,着色开始时V1是G所有结点集合。NEW表 示已确定可以用新颜色着色的结点集合。从G中找出可 用新颜色着色的结点集的工作可以用下面的程序框架描 述:
第一章 绪 论
算法与数据结构讨论的是程序设计中 的核心问题,也是计算机科学领域的一个 基本的问题
第一章 绪 论
引入:
C D
• 五叉路口设计一个交 通信号灯管理系统
B A E
图 1.1 一个交叉路口的模型
内容
• 实例求解
• 计算科学概述 • 数据结构的基本概念 • 算法的基本概念
• 算法的评价
实例求解
授课内容
第五章 树与二叉树(续)
• 二叉树的基本运算二叉树的各种周游算法
• 线索二叉树
• Huffman树的概念及应用
授课内容
第六章 检索与字典
• 检索与字典基本概念 • 顺序检索,二分检索 • 散列表、散列函数的基本概念,散列函数的 选择,碰撞的处理方法 • 二叉排序树 • 平衡二叉排序树* • B树与B+树*
授课内容
第四章 堆栈与队列
•堆栈
堆栈的概念,堆栈的存储结构,堆栈的基 本运算,堆栈的应用
•队列
队列的概念,队列的存储结构,队列的基 本运算,队列的应用
授课内容
第五章 树与二叉树
• 树的基本概念
• 树的存储结构及其基本运算
• 二叉树的概念及种类-完全二叉树与满二叉树 • 二叉树的存储结构
• 树、树林和二叉树的相互转换
授课内容
第七章 排序
• 排序的基本概念 • 插入排序 • 直接插入排序 • 二分法插入排序 • 表插入排序 • 选择排序 • 直接选择排序 • 交换排序 • 冒泡排序 • 各种排序算法的复杂性分析
授课内容
第八章 图结构
• 图的基本概念及有关术语 • 图的存储表示法 • 图遍历 • 最小生成树 • 最短路径 • 拓扑排序

数据结构基本概念——基本术语
抽象数据类型的概念最早出现在 20 世纪 70 年代,它是面向对象方法的重要理论 基础。 本书在内容的组织中仅仅使用了抽象数 据类型的概念,而没有严格采用面向对 象的程序设计语言的描述机制(例如 class)。

数据结构基本概念——基本术语
抽象数据类型意义和作用(1)
E A EB
图 1.1 一个交叉路口的模型
EC
ED
有些通行方向显然不能同时进行,相应的结点间画一 条连线。
AB AC AD
BA
BC
BD
DA
DB
DC
EA
EB
EC
ED
图1.2
交叉路口的图示模型
实例求解-问题分析
如果把上图中的一个结点理解为一个国家,结点之 间的连线看作两国有共同边界,上述问题就变成著名的 “着色问题”:即求出最少要几种颜色可将图中所有国 家着色,使得任意两个相邻的国家颜色都不相同。通过 上面的分析,我们就获得了该交通管系统的数学模型: 图 但是,常见程序设计语言并不直接支持图和集合等, 通常只提供了一些基本数据类型(如整数,实数,字符 等)和一些数据手段(如数组,记录,指针等)。 要解决计算问题,用户必须用自己选定的语言所提 供的机制实现这些数据结构(集合,图等)和操作(对 集合元素的增删,对图的边的判断等),这些就是数据
授课内容
第九章 稀疏矩阵和广义表
合集下载

数据结构课件 第一章 绪论

数据结构课件  第一章 绪论

• 教室:1-404
数学与计算机科学学院
数 据 结 构 多 媒 体 课 件
第一章
1.1
1.2 1.3
绪 论
什么是数据结构
基本概念和术语 算法和算法分析
数学与计算机科学学院
数 据 结 构 多 媒 体 课 件
教学重点
⑴数据、数据元素、数据项 ⑵逻辑结构和数据结构 在概念上的联系与区别 ⑶运算的概念 ⑷存储结构及其三个组成部分 ⑸抽象数据类型和数据抽象 ⑹评价算法优劣的标准及方法。
数 据 结 构 多 媒 体 课 件
常见时间复杂度按递增排列为: O(1), O(log2n), O(n), O(nlog2n), O(n2), O(n3),……O(nk), O(2n)
数学与计算机科学学院
数 据 结 构 多 媒 体 课 件
空 间 复 杂 度
用空间复杂度作为算法所需 存储空间的度量,记做 S(n)=O(f(n))
数据元素
数学与计算机科学学院
数 据 结 构 多 媒 体 课 件
• 4、数据对象(Data Object) :是性 质相同的数据元素的集合,是数据 的一个子集。 • 例如:整数数据对象是集合
N={0,±1,±2, …},字母字符数据对 象是集合C={′A′,′B′,…,′Z′}
数学与计算机科学学院
数 据 结 构 多 媒 体 课 件
数学与计算机科学学院
数 据 结 构 多 媒 体 课 件
时 间 复 杂 度
一般算法中基本操作重复执行的次数是问 题规模n 的某个函数f(n),算法的时间量度记 做 T(n)=O(f(n)).它表示随问题规模n 的增大, 算法执行时间的增长率和f(n).的增长率相同. 例如1. x=x+1; 时间复杂度为O(1),称为常量阶 2. for(i=1;i<=n;i++) x=x+1;时间复杂度 为O(n),称为线性阶 3. for(i=1;i<=n;i++) for(j=1;j<=n;j++) x=x+1; 时间复杂度为O(n2), 称为平方阶 数学与计算机科学学院

《数据结构教程》第一章 绪论

《数据结构教程》第一章 绪论

《数据结构教程》第一章绪论数据结构教程第一章绪论数据结构是计算机科学中的重要概念之一,它是计算机程序设计的基础。

本教程的第一章将介绍数据结构的基本概念和作用。

一、什么是数据结构?在计算机科学中,数据结构用于存储和组织数据,以便在计算机程序中进行高效的操作。

数据结构可以分为两种基本类型:线性数据结构和非线性数据结构。

1.1 线性数据结构线性数据结构是最简单的数据结构之一,它将数据元素按照线性顺序组织,可以使用一对一的关系连接数据元素。

常见的线性数据结构有数组、链表和栈。

1.2 非线性数据结构非线性数据结构是指数据元素之间存在多对多的关系,不是简单的一对一关系。

常见的非线性数据结构有树和图。

二、数据结构的作用数据结构的设计和选择对于程序的效率和性能具有重要影响。

合理选择数据结构可以提高算法的执行速度,降低计算机资源的占用。

2.1 提高数据的存储效率通过选择适当的数据结构可以减少内存的占用,提高数据的存储效率。

例如,链表数据结构可以动态地分配内存空间,减少内存的浪费。

2.2 提高数据的访问效率不同的数据结构在数据的访问效率上有所差异。

例如,对于需要频繁插入和删除操作的场景,链表数据结构比数组数据结构更加高效。

2.3 优化算法的执行速度数据结构和算法是相辅相成的,通过选择合适的数据结构可以优化算法的执行速度。

例如,在查找操作中使用二叉搜索树可以降低时间复杂度。

三、数据结构的分类根据数据结构的存储方式和操作特性,可以将数据结构分为线性数据结构和非线性数据结构。

3.1 线性数据结构线性数据结构是最常用的数据结构之一,它将数据元素按照线性顺序排列,每个元素有一个直接前驱和直接后继。

常见的线性数据结构有数组、链表和栈。

3.1.1 数组数组是一种最简单的数据结构,它将数据元素存储在连续的内存空间中。

数组的访问速度很快,但是插入和删除操作的效率较低。

3.1.2 链表链表是一种动态数据结构,它通过指针将数据元素链接在一起。

第1章 数据结构绪论

第1章  数据结构绪论
数学 代数系统
编译理论 数据表示法 存储装置 硬件(计算机系统设计)
算子关系 数据 数据的操作 类型 数据结构 文件系统 数据存取 数据组织 机器组织 信息检索 软件(计算机程序设计)
4
1.1 引

为了使读者对数据结构有一个感性的认识, 为了使读者对数据结构有一个感性的认识, 下面给出几个数据结构的示例, 下面给出几个数据结构的示例,读者可以 通过这些示例去理解数据结构的概念。 通过这些示例去理解数据结构的概念。 【示例1】 职工基本情况表。 参见教材P2 【示例2】 井字棋对弈问题。 【示例3】 教学计划编排问题。
9
1.3 抽象数据类型
首先我们了解一下在程序设 计语言中出现的各种数据类 型。
10
1.3.1 数据类型
数据类型是一个值的集合和定义在这个值集上 的一组操作的总称。 的一组操作的总称。 在高级程序设计语言中,数据类型可分为两类: 在高级程序设计语言中,数据类型可分为两类: 一类是原子类型,另一类则是结构类型。 一类是原子类型,另一类则是结构类型。 在某种意义上,数据结构可以看成是“ 在某种意义上,数据结构可以看成是“一组具 有相同结构的值” 有相同结构的值”,而数据类型则可被看成是 由一种数据结构和定义在其上的一组操作所组 成的。 成的。
6
1.2 基本概念与术语
1. 逻辑结构
(1) 线性结构。 (2) 集合结构。 (3) 树形结构。 (4) 图状结构。 数据的四种基本逻辑结构如图1.4所示。
7
1.2 基本概念与术语
2. 存储结构 (1) 顺序存储结构是指把逻辑上相邻的结 点存储在物理上相邻的存储单元里,结点 之间的逻辑关系由存储单元位置的邻接关 系来体现。 (2) 链式存储结构是把逻辑上相邻的结点 存储在物理上任意的存储单元里,结点之 间的逻辑关系由附加的指针域来体现。 (3) 索引存储结构是用结点的索引号来确 定结点的存储地址。

数据结构 第一章 绪论

数据结构 第一章 绪论

2018/11/26
4
例如,用计算机求数学方程的根
(1)用二分法求方程的根 (2)用迭代法求方程的根
xn 1
1 a ( xn ) 2 xn
特点:用数学方程进行数值运算,称这类问题的数 学模型是数学方程
2018/11/26
5
例1-1 学生选课系统
在教务系统中按所在专业培养方案选修;查询每一门 课有多少同学选修了该课; 查询、统计一下全班同学下 学期的选课情况等。 涉及的操作:选课、课程查询;选课统计等。 如何表示数据,如何对数据进行操作? 为此可以: 建立一张按学生的学号顺序排列的学生信息表和分别 按专业、课程号和班级代号顺序排列的索引表。如图所 示。由这四张表构成的文件就是学生选课系统的数学模 型,计算机的主要操作就是按特定要求对学生信息文件 进行查询。
2018/11/26 8
...
...
如何表示,如何操作? 表示每一种格局; 表示格局之间的派生关系; 给出对奕的算法:从所有儿子格局中找出最有利的格局。 类似问题:计算机中的文件管理、单位的组织机构、家族的 族谱等具有层次关系的数据。
2018/11/26 9
例1-3 交通导游图
以相关标志性地名或景点,抽象成为图中的顶点, 道路抽象为顶点之间的连线。在顶点中可以存放地名 或景点的名称、代号、介绍等信息;连线表示路径, 可以存入路径长度等相关信息。 求:从任何一个景点出发到其他点的最短路程或代 价最小方案等。 此类结构还有教学计划、交通运输、工程施工、网 络布线等。对这种结构的关键操作有遍历(查询),其 他还有插入、删除操作,求关键路径、最小生成树、 最短路径等。
950 1530 1740
1080
2250
成都

01数据结构——绪论

01数据结构——绪论

01数据结构——绪论⼀、数据结构绪论1.1 数据结构数据结构是⼀门研究⾮数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。

1.2 基本概念和术语数据数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输⼊给计算机处理的符号集合。

数据不仅仅包括整形、实型等数值类型,还包括字符及声⾳、图像、视频等⾮数值类型。

数据元素数据元素是组成数据的、有⼀定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。

⽐如动物类中,⽜、马、⽺、鸡、鸭、鹅就是其数据元素。

数据项⼀个数据元素可以由若⼲数据项组成。

数据项是数据不可分割的最⼩单位。

⽐如⼈这样的数据元素,有眼、⽿、⿐、⼝、⼿、脚这些数据项,也可以有姓名、年龄、性别、出⽣地址、联系电话等数据项,具体哪些数据项,要根据你的系统决定。

数据对象数据对象是性质相同的数据元素的集合,是数据的⼦集。

所谓性质相同,是指数据元素具有相同数量和类型的数据项,⽐如⼈都有姓名,性别,⽣⽇等相同的数据项。

数据结构数据结构是相互之间存在⼀种或多种特定关系的数据元素的集合。

研究数据结构的意义:在计算机中,数据元素不是孤⽴、杂乱⽆序的,⽽是具有内在联系的数据集合。

数据元素之间存在的⼀种或多种特定关系,也就是数据的组织形式。

为编写⼀个好的程序,必须分析待处理对象的特性及各处理对象之间存在的关系。

这也就是研究数据结构的意义所在。

1.3 逻辑结构和物理结构:按照视点的不同,可以把数据结构分为逻辑结构和物理结构。

逻辑结构逻辑结构是指数据对象中数据元素之间的相互关系。

逻辑结构分为以下四种:集合结构:集合结构中的数据元素除了同属于⼀个集合外,它们之间没有其他关系。

各个数据元素是“平等”的,它们的共同属性是同属于⼀个集合。

集合结构线性结构:线性结构中的数据元素是⼀对⼀的关系。

线性结构树形结构:树形结构中的元素之间存在⼀种⼀对多的层次关系。

树形结构图形结构:图形结构的数据元素是多对多的关系。

《数据结构》第一章重点知识梳理

《数据结构》第一章重点知识梳理
12
第一章 绪论
求绝对值 abs(表达式) 求不足整数值 floor(表达式) 求进位整数值 ceil(表达式) 判定文件结束 eof(文件变量) (10)逻辑运算 与运算&&:对于A&&B,当A的值为0时,不在对B求值。 或运算||:对于A||B,当A的值为非0时,不在对B求值。 四、算法和算法分析 1.算法 (1)算法的定义
由于算法的时间复杂度考虑的只是对于问题规模n的增长率,因此在难以精确计算基本操作 执行次数(或语句频度)的情况下,只需求出它关于n的增长率或阶即可。 4.算法的存储空间需求
类似于算法的时间复杂度,以空间复杂度(spacecomplexity)作为算法所需存储空间的量 度,记作S(n)=O(f(n))其中n为问题的规模。
18
的表示。
①元素的表示。计算机数据元素用一个由若干位组合 起来形成的一个位串表示。
图1-1四类基本结构的关系图。
5
第一章 绪论
②关系的表示。 计算机中数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象。 并由这两种不同的表示方法得到两种不同的存储结构:顺序存储结构和链式存储结构。 a.顺序映象的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。 b.非顺序映象的特点是借助指示元素存储地址的指针(pointer)表示数据元素之间的逻辑
数据元素(dataelement)是数据的基本单位,在计算机程序中通常作为一个整体进行考 虑和处理。
3
第一章 绪论
3.数据对象 数据对象(dataobject)是性质相同的数据元素的集合,是数据的一个子集。
4.数据结构 数据结构(datastructure)是相互之间存在一种或多种特定关系的数据元素的集合。 (1)数据结构的基本结构 根据数据元素之间关系的不同特性,通常有下列四类基本结构: ①集合。数据元素之间除了“同属于一个集合”的关系外,别无其它关系。 ②线性结构。数据元素之间存在一个对一个的关系。 ③树形结构。数据元素之间存在一个对多个的关系。 ④图状结构或网状结构。数据元素之间存在多个对多个的关系。

数据结构第一章--绪论(严蔚敏版)


解 T = (D, R ) D={A,B,a,b,c }
R是D上的关系的集合 是 上的关系的集合
A
B
a R={ P1,P2 } P1 ={<A,a>, <A,b>, <A,c>} P2 ={<B,a>, <B,b>, <B,c>}
b
c
写出一个复数的数据结构 例3 写出一个复数的数据结构 Complex= (C , R) 解 一个复数可以表示为 a+bi 一个复数可以表示为 复数 C={a,b}
也可以表示成一个有序对 <a, b>
∴这里存在一种关系 P ={<a,b>} (只有一个有序对 只有一个有序对) 只有一个有序对
而R是C上的关系的集合 R={ P } 是 上的关系的集合
写出一个复数的数据结构 例3 写出一个复数的数据结构 Complex= (C , R) 解 一个复数的数据结构为 Complex= (C , R) 其中, 其中, C={a,b} R={ P } P ={<a,b>}
a b c
解 其数据结构可描述为 d e T = (D, R ) D是数据元素的集合 D={a,b,c,d,e} 是数据元素的集合
R是D上的关系的集合 R={ P } 是 上的关系的集合
P ={<a,b>,<a,c>,<b,d>,<b,e>}
例2
一小组有a,b,c 三个学生,一个导师A 一小组有a,b,c 三个学生,一个导师A 和一个辅导员B 和一个辅导员B,此小组的数据结构如图:
48
ADT 抽象数据类型名 { 数据对象: 数据对象:〈数据对象的定义〉 数据关系: 数据关系:〈数据关系的定义〉 基本操作: 基本操作:〈基本操作的定义〉 } ADT 抽象数据类型名 其中基本操作的定义格式为: 基本操作名(参数表) 基本操作名 初始条件:〈初始条件描述〉 初始条件: 操作结果:〈操作结果描述〉 操作结果

大学数据结构课件--第1章 绪论

23
1 2 3 4 5 6 7 8 9
学 号 98131 98164 98165 记录 98182 98224 98236 98297 98310 98318
姓 名 刘激扬 衣春生 卢声凯 袁秋慧 洪 伟 熊南燕 宫 力 蔡晓莉 陈 健
性别 男 男 男 女 男 女 男 女 男
24
籍 北 青 天 广 太 苏 北 昆 杭
对相关的各种信息如何表示、组织和存储?
因此,可以认为:数据结构是一门研究非数值计算
的程序设计问题中计算机的操作对象以及它们 之间的关系和操作等的学科。
5
1.1 什么是数据结构
1.许卓群,张乃孝,杨冬青,唐世渭,《数据结构》,国防科技大学 计算机研究所,1985年 “按某种逻辑关系组织起来的一批数据,按一定的存储表示方式把它 存储在计算机的存储器中,并在这些数据上定义了一个运算的集合, 就叫做一个数据结构。”
数据项-- 一个数据元素可由若干个数据项组成, 是数据的
(Data Item)
不可分割的最小单位(又称字段等)。
三者之间的关系:数据>数据元素>数据项 例:学生档案>个人记录>姓名、性别、籍贯…
10
1.2 基本概念和术语
数据对象(Data 数据结构(Data
Object)--是性质相同的数据元素的集合,
1.3 抽象数据类型的表示与实现
数据类型--是一个值的集合和定义在这个值集上的一组操作
的总称。
抽象数据类型—由用户定义,用以表示应用问题的数据模
型。它由基本的数据类型组成,并包含一组相关的操作。
抽象数据类型可用ADT=(D,S,P)三元组表示
数据对象 D上的关系集 D上的操作集 ADT ADT 抽象数据类型名{ 数据对象:〈数据对象的定义〉 常用 数据关系:〈数据关系的定义〉 定义 基本操作:〈基本操作的定义〉 格式 } ADT 抽象数据类型名

数据结构 第一章 绪论


三、算法和算法分析
1、算法的特性
有穷性
算法在执行有穷步后结束,且每步可在有穷时间内完成 确定性 算法中指令无二义性,且在任何条件下执行路径唯一
可行性
算法中各操作可通过已实现的基本运算执行有限次完成
1、算法的特性
输入
零或多个 输出 一或多个
2、算法设计的要求
正确性
算法应能满足具体问题的需求 可读性 算法应易于阅读和理解
健壮性
输入数据非法时,算法也能适当作出反应或进行处理 高效性 算法执行时间短,占用存储空间少
3、算法的时间复杂度
算法执行效率主要与所用计算机软、硬件及问题规模有
关。 衡量算法效率时,通常在算法中选择一种不可再分解的 基本操作,该操作的重复执行次数应与算法的执行时间成正
比,一般为问题规模n的函数f(n),此时可记算法的时间量
S(n)=O(f(n)),其中 n 为问题的规模。 分析算法空间复杂度时,一般只考虑执行算法所需辅助 空间,但若输入数据所占空间与算法本身有关,则也应计算
在内。
若算法执行所需空间与输入数据有关,则可求最坏情况 下的空间复杂度。
课程说明
1、教学日历 2、成绩评定 平时(50%)=实验(30%)+作业(15%)+考勤(5%) 期末考试:50%
读者信息: 读者编号 姓名
所借图书登录号 002 001
9001 9002
李红 张小林
2、数据元素
数据的基本单位,程序中常作为一个整体考虑和处理。
举例——图书借阅管理系统 图书信息: 登录号 001 002 书名 理论力学 高等数学 借阅者编号 9002 9001
读者信息: 读者编号 姓名
所借图书登录号 002 001

第一章 绪论 《数据结构》PPT课件

47
① 结构化程序设计目的
通过设计结构良好的程序,以程序的静态良好结构保证 程序动态执行的正确性,使程序易理解、易调试、易维 护,以提高软件开发的效率,减少出错率。
②结构化程序设计的构成单元
任何程序都可由顺序、选择、重复三种基本控制结构来 组成。
③结构化程序设计方法 其一:“自顶向下,逐步求精”的设计思想 ;其二: “独立功能,一个入口,一个出口“的模块化结构; 其 三:“仅用三种基本控制结构”的设计原则
不是针对实际执行时间精确算出算法执行的具 体时间,而是针对算法中语句的执行次数做出估计, 从中得到算法执行时间的信息。
38
定义:
语句频度是指该语句在一个算法中重复执行
的次数。
例如: 算法语句
对应的语句频度
1 for(i=0;i< n;i++)
两个
2
for (j=0;j<n;j++)
矩阵
3
{c[i][j]=0;
1.1 数据结构的基本概念(定义)
1
数据(Data)
定义:
数据是描述客观事物的数值、字符以及能输入 机器且能被处理的各种符号集合。
数据包含整型、实型、布尔型、图象、字符、声音 等一切可以输入到计算机中的符号集合。
例如对C源程序
C编译程序
源程序
(.c)
目标程序 (.obj)
C链接程序
可执行程序 (.exe)
数据元素之间的关系在计算机中的表示方法: ▪顺序映像 (顺序存储结构) ▪非顺序映像(非顺序存储结构)
18
运算集合
例如工资表:
编 号 姓 名 性别 基本工资 工龄工资 应扣工资 实发工资
100001 张爱芬 100002 李 林
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档