数据结构课件第一章.ppt

合集下载

数据结构精选课件(ppt 82页)

数据结构精选课件(ppt 82页)
不同点
10.01.2020
11
1.2 数据结构的内容
逻辑结构 存储结构 运算集合
10.01.2020
12
逻辑结构
定义: 数据的逻辑结构是指数据元素之间逻辑关系描述。
形式化描述: Data_Structure=(D,R)其中D是数据元素的
有限集,R是D上关系的有限集。
四类基本的结构 集合结构、线性结构、树型结构、图状结构。
10.01.2020
13
集合结构
定义: 结构中的数据元素之间除了同属于
一个集合的关系外,无任何其它关系。
例如:
集合
10.01.2020
14
线ቤተ መጻሕፍቲ ባይዱ结构
定义: 结构中的数据元素之间存在着一对
一的线性关系。
例如:
线性表
10.01.2020
15
树型结构
定义: 结构中的数据元素之间存在着一对
多的层次关系。
数据结构课件
用C语言描述
西北师范大学经济管理学院
----信息管理系
10.01.2020
1
第1章 绪 论
1.1 数据结构的基本概念(定义) 1.2 数据结构的内容(研究范围) 1.3 算法设计 1.4 算法描述工具 1.5 对算法作性能评价 1.6 数据结构与C语言表示
●1.7 关于学习数据结构
100001 张爱芬 女 345.67 145.45 30.00 451.12
100002 李 林 男 445.90 185.60 45.00 586.50
100003 刘晓峰 男 345.00 130.00 25.00 450.00
100004 赵 俊 女 560.90 225.90 65.00 721.80

数据结构第01章概论.ppt

数据结构第01章概论.ppt
高等学校精品课程
(第2版)
李云清 杨庆红 揭安全
人民邮电出版社
1
第一章 概述
什么是数据结构 数据类型和抽象数据类型
算法和算法分析
退出
第一章 概述
瑞士著名的计算机科学家Nicklaus Wirth在1976 年出版了一本书,书名为《算法+数据结构 = 程序设 计》,它正说明了数据结构在程序设计中的作用。程序 设计的实质即为计算机处理问题编制一组"指令",首先 需要解决两个问题:即算法和数据结构。算法即处理问 题的策略,而数据结构即为问题的数学模型。
退出
1.1.4数据的运算集合
对于一批数据,数据的运算是定义在数据的逻 辑结构之上的,而运算的具体实现就依赖于数据的 存储结构。
数据的运算集合要视情况而定,一般而言,数据的 运算包括插入、删除、检索、输出、排序等。
插入:在一个结构中增加一个新的结点。
删除:在一个结构删除一个结点。
检索:在一个结构中查找满足条件的结点。
98
I 79
F
(a)城市距离图
A
34
12
B
H9
8
C
G
31
21
E 10
D
I 79
F
(b)联通各城市最小生成树
退出
以上所举例子中的数学模型正是数据结构要讨论 的问题。因此,简单地说,数据结构是一门讨论"描述 现实世界实体的数学模型(非数值计算)及其上的操作 在计算机中如何表示和实现"的学科。
退出
综上所述
对于一个数据结构B=(K,R),必须建立从结点 集合到计算机某个存储区域M的一个映象,这个映象 要直接或间接地表达结点之间的关系R。数据在计算 机中的存储方式称为数据的存储结构。

《数据结构》课件

《数据结构》课件

第二章 线性表
1
线性表的顺序存储结构
2
线性表的顺序存储结构使用数组来存储元素,
可以快速随机访问元素。
3
线性表的常见操作
4
线性表支持常见的操作,包括插入、删除、 查找等,可以灵活地操作其中的元素。
线性表的定义和实现
线性表是一种数据结构,它包含一组有序的 元素,可以通过数组和链表来实现。
线性表的链式存储结构
线性表的链式存储结构使用链表来存储元素, 支持动态扩展和插入删除操作。
第三章 栈与队列
栈的定义和实现
栈是一种特殊的线性表,只能在一 端进行插入和删除操作,遵循后进 先出的原则。
队列的定义和实现
队列是一种特殊的线性表,只能在 一端进行插入操作,在另一端进行 删除操作,遵循先进先出的原则。
栈和队列的应用场景和操作
哈希表是一种高效的查找数据结构, 通过哈希函数将关键字映射到数组 中,实现快速查找。
排序算法包括冒泡排序、插入排序 和快速排序等,可以根据数据规模 和性能要求选择合适的算法。
结语
数据结构的学习心得 总结
学习数据结构需要掌握基本概念 和常见操作,通过实践和练习加 深理解和熟练度。
下一步学习计划的安 排
在掌握基本数据结构的基础上, 可以进一步学习高级数据结构和 算法,提升编程技能。
相关学习资源推荐
推荐一些经典的数据结构教材和 在线学习资源,如《算法导论》 和LeetCode等。
栈和队列在计算机科学中有许多应 用,如函数调用、表达式求值和作 业调度等。
第四章 树与二叉树
树的定义和性质
树是由节点和边组成的一种非线性数据结构,每个 节点可以有多个子节点。
二叉树的遍历方式
二叉树的遍历方式包括前序遍历、中序遍历和后序 遍历,可以按不同顺序输出节点的值。

数据结构讲义精品PPT课件

数据结构讲义精品PPT课件

003 陈诚 02 男 19840910 638
… … … ……

数据元素
数据结构 具有结构的数据元素的集合。它包 括数据元素的逻辑结构、存储结构和相适应的 运算。
逻辑结构
数据元素之间的逻辑关系,与计算机无关。 可用一个二元组表示:Data_Structure = (D,R) D:数据元素的有穷集合,R:集合D上关系的有穷集合。
《The Art of Computer Programming》
Art Evans
数据结构在计算机科学中是一门综合性的专业基础课, 也是计算机专业的必修课,是其它许多课程的先修课程, 是设计编译程序、操作系统、数据库系统等系统程序和 大型应用程序的重要基础。
1.2 基本概念和术语
基本术语
数据 被计算机加工处理的对象。 数据元素(记录、表目) 数据的基本单位,
几种常用的运算有: (1)建立数据结构 (2)清除数据结构 (3)插入数据元素 (4)删除数据元素 (5)排序
(6)检索* (7)更新 (8)判空和判满* (9)求长*
*操作为引用型操作,即数据值不发生变化; 其它为加工型操作。
抽象数据类型
抽象数据类型 ADT( Abstract Data Type ): 数据类型概念的引伸。指一个数学模型以及在其上定义的操作集 合,与计算机无关。 数据类型:一组值的集合和定义在其上的一组操作的总称。
抽象数据类型的描述方法
ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉
} ADT 抽象数据类型名
其中基本操作的定义格式为:
基本操作名(参数表) 初始条件:〈初始条件描述〉 操作结果:〈操作结果描述〉

数据结构第一章ppt课件

数据结构第一章ppt课件
一组操作 – ADT = ( D,S,P )
其中:D 是数据对象, S 是 D 上的关系集, P 是 D 的基本操作集
算法
• 算法 算法是对问题求解过程的一种描述,是 为解决一个或一类问题给出的一个确定 的、有限长的操作序列。重要特性:
– 有穷性 对于任意一组合法的输入值,在执行有穷步 骤之后一定能结束。
– 赋值方式不同
• 对字符指针变量,可用赋值语句赋值 • 字符数组,可在定义时初始化,不能整体赋值
– 指针变量的值是可以改变的
• 数组名代表数组的起始地址,是一个常量,而常 量是不能被改变的
结构体
• 结构体类型与结构体变量的定义 • 结构体变量的引用与初始化 • 结构体指针 • 结构体数组
结构体
– 形式参数和实际参数 – 值传递
函数
• 递归调用
– 一个函数在它的函数体内,直接或间接地调用它自 身
– 例如求N!(n>=0)
long power(int n) { long f; if(n>1) f=power(n-1)*n; else f=1; return (f); }
函数
• 数组作为函数参数
• 数组的定义 • 数组元素的引用 • 数组的元素的初始化 • 应用举例
数组
• 数组的定义 – 数据类型 数组名[常量表达式] – int a[10];
– 下标从0开始 – 数组名代表整个数组的首地址
数组
• 一维数组元素的引用
– 数组名[下标表达式]
• 一维数组的元素的初始化
– 数据类型 数组名[常量表达式]={初值表}
– 使用指向数组的指针变量来引用数组元素
main()
{ int array[10], *pointer=array, i;

数据结构第一章绪论(1)PPT教学课件

数据结构第一章绪论(1)PPT教学课件

2020/12/10
7
二、 数据结构( Data Structure )
★ 数据结构是相互之间存在一种或多种特定关系的 数据元素的集合
◆ 数据结构=数据+结构(关系)
2020/12/10
8
数据结构的描述方式
1、逻辑结构
★ 是对数据元素之间逻辑关系(抛开具体的关系 含义以及存储方式等)的描述
◆ 它可以用一个数据元素的集合和定义在此集合 上的几个关系来表示
第一章 绪论
第一节 什么是数据结构 ★ 数据结构(Data Structure)
2020/12/10
1
什么是数据结构
★ 数据结构作为一门独立的课程在国外是从1968年 才开始设立的
◆ 当时,数据结构几乎和图论,特别是和表、树的 理论成为同义语
2020/12/10
2
什么是数据结构
◆ 但对于数据结构的概念,至今尚未有一个被一致 公认的定义
2020/12/10
9
★ 数据结构通常可用图形表示 圆圈表示数据元素,箭头表示关系
数据元素
数据元素
Ei
关系
E i+1
数据结构的描述方式
2、物理结构(存储结构)
★ 数据结构在计算机中的具体表示(representation) 和实现 (implementation)
2020/12/10
11
数据结构的分类 1、按逻辑结构分类 ★ 集合、线性结构、树型结构、图状结构 2、按物理结构分类 ★ 顺序存储结构、链式存储结构、索引存储结构
2020/12/10
12
数据结构的概念
★ 数据结构的形式定义为
◆ 数据结构是一个二元组 Data_Structure=(D,S)

《数据结构》课件第一章

《数据结构》课件第一章

程序步确定方法
关于复杂度数量级的表示方法
O(n) O(n) O(n)
C + O(n) C * O(n) O(n) * O(n)
顺序语句 一重循环 多重循环 条件判断
C
n m*n、m*n*l、 m*n*l*t …… Max( u, v) (u和v也可能是常数)
➢对于一个多项式的时间复杂度,只记它最高的幂次。
基本概念和术语(二)
➢ 数据结构:
✓ 结构是指数据间的关系。 ✓ 数据结构是指是相互之间存在某种特定关系的
数据元素的集合。(模型) ✓ 数据结构包括三个方面的内容 ▪ 数据的逻辑结构 ▪ 数据的存储结构 ▪ 数据的运算
一个算法的设计取决于选定的逻辑结构, 算法的实现依赖于采用的存储结构
图书馆查询系统 人机对羿
➢ 算法最坏时间复杂度:算法在任何输入 实例上运行时间的上界。
算法的时间复杂度不仅仅依赖于问题的 规模,还取决于输入实例的初始状态
e.g 折半查找法 最好情况:1(x = n/2) 最坏情况:log2 n 一般来说,在普通应用场合中使用折半查找法 时,以最坏情况时的复杂度作为该算法的复 杂度
算法的空间复杂度分析
算法及算法复杂度分析
什么是数据结构
计算机加工处理的对象由纯粹的数值发展 到字符、图表、图象等各种具有一定结构 的数据。
用计算机解决一个具体问题的时候一般有 几个步骤:
❖ 从具体问题抽象出一个数学模型 ❖ 设计解决这个模型的算法(找到处理的对象
的特性和对象之间的关系) ❖ 编程、测试、得到最终解
良好的抽象思维能力
能够针对算法流程图逐一阐述出算法的 完整实现流程
关于流程图的介绍
每个流程图都有一个开始标记 每个流程图至少有一个结束标记 程序模块的确定——顺序语句 条件分支的画法 如何用“条件分支”来实现“循环”的

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

第一章  绪论  《数据结构》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 李 林

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

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

28.11.2020
21
算法设计的要求
算法的正确性 l 可读性 l 健壮性 l 高效率和低存储量
例如要求n个数的最大值问题 给出算法如下:
max:=0; for(i=1 ;i<= n ;i++) { scanf("%f", x);
if (x>max) max=x; }
28.11.2020
22
算法描述的工具
算法可用自然语言、框图或高级程序设计语言 进行描述。
类语言是接近于高级语言而又不是严格的高级 语言,具有高级语言的一般语句设施,撇掉语言中 的细节,以便把注意力主要集中在算法处理步骤本 身的描述上。
28.11.2020
23
设计实现算法过程步骤
1. 找出与求解有关的数据元素之间的关系
2. 确定在某一数据对象上所施加运算 3. 考虑数据元素的存储表示 4. 选择描述算法的语言 5.设计实现求解的算法,并用程序语言加以描述。
例如:

28.11.2020
8
图状结构或网状结构
定义: 结构中的数据元素之间存在着多对
多的任意关系。
例如:

28.11.2020
9
逻辑结构
定义: 数据的逻辑结构是指数据元素之间逻辑关系描述。
l形式化描述: Data_Structure=(D,R)其中D是数据元素的
有限集,R是D上关系的有限集。
28.11.2020
5
集合结构
定义: 结构中的数据元素之间除了同属于
一个集合的关系外,无任何其它关系。
例如:
集合
28.11.2020
6
线性结构
定义: 结构中的数据元素之间存在着一对

数据结构第一章市公开课获奖课件省名师示范课获奖课件

数据结构第一章市公开课获奖课件省名师示范课获奖课件

• 6. 【初程P71】 从供选择旳答案中,选 出应填入下面论述 内旳最确切旳解 答,把相应编号写在答卷旳相应栏内。
• 设有4个数据元素a1、a2、a3和a4,对 他们分别进行栈操作或队操作。在进栈 或进队操作时,按a1、a2、a3、a4顺序 每次进入一种元素。假设栈或队旳初始 状态都是空。
• 现要进行旳栈操作是进栈两次,出栈一次,再 进栈两次,出栈一次;这时,第一次出栈得到 旳元素是 A ,第二次出栈得到旳元素是 B 是;
• 类似地,考虑对这四个数据元素进行旳队操作 是进队两次,出队一次,再进队两次,出队一 次;这时,第一次出队得到旳元素是 C , 第二次出队得到旳元素是 D 。经操作后, 最终在栈中或队中旳元素还有 E 个。
• 供选择旳答案:
• A~D:①a1 ②a2 ③ a3 ④a4
• E: ①1 ②2 ③ 3 ④ 0
• 错,线性表是逻辑构造概念,能够顺序 存储或链式存储,与元素数据类型无关。
• ( )2. 在表构造中最常用旳是线 性表,栈和队列不太常用。
• ( × )2. 在表构造中最常用旳是线 性表,栈和队列不太常用。
• 错,不一定吧?调用子程序或函数常用, CPU中也用队列。
• ( )3. 栈是一种对全部插入、删 除操作限于在表旳一端进行旳线性表, 是一种后进先出型构造。
• 二、判断正误(判断下列概念旳正确性, 并作出简要旳阐明。)
• ( )1. 线性表旳每个结点只能是 一种简朴类型,而链表旳每个结点能够 是一种复杂类型。

• 二、判断正误(判断下列概念旳正确性, 并作出简要旳阐明。)
• ( × )1. 线性表旳每个结点只能是一 种简朴类型,而链表旳每个结点能够是 一种复杂类型。
第一种字节地址为

数据结构PPT第一章绪论

数据结构PPT第一章绪论
运算序列
特性
输入 有0个或多个输入
输出 有一个或多个输出(处理结果)
确定性 每步定义都是确切、无歧义的
有穷性 算法应在执行有穷步后结束
有效性 每一条运算应足够基本
算法定义
事例学习:选择排序问题
明确问题:非递减排序
解决方案:逐个选择最小数据
算法框架:
for ( int i=0; i<n-1; i++ ) { //n-1趟
从a[i]检查到a[n-1];
若最小的整数在a[k], 交换a[i]与a[k];
}
细化程序:程序 SelectSort
void selectSort ( int a[ ], const int n ) {
//对n个整数a[0],a[1],…,a[n-1], 按非递减顺序排序
for ( int i=0; i<n-1; i++ ) {
//交换Elem[j-1]与Elem[j]
exchange = 1;
//做“发生了交换”标志
}
}
−1
渐进时间复杂度:O(f (n)*g (n)) =
−1
෍ − =
2
=1
sum[i] = 0.0;
//数据累加
for ( int j=0; j<n; j++ ) sum[i] += x[i][j];
}
for ( i = 0; i < m; i++ ) //打印各行数据和
cout << “Line ” << i <<
“ : ” <<sum [i] << endl;

201009_数据结构(第1章).ppt

201009_数据结构(第1章).ppt

姓名
李明 王刚 …
代数
90 84.5 …
216 220
0001 李明
224
228 232
80.5
90
对于这种含有多个数据项的数据元素,每个 数据项在结点中的对应部分称为数据域。
236
1.2 基本概念和术语
下面再来研究如何在计算机中表示数据元素之间的关系。共有两种 表示方法,一种是顺序映象,另一种是非顺序映象。
O(n3)
O(n2)
立方阶
平方阶 算法执行时间的这种度量称为算法的时间复杂度,它反映了当n增大 时,算法的执行时间的增长速度。 如果算法的基本操作语句的频度始终是常数,则该算法的时间复杂 度记为O(1),称为常量阶。常用的时间复杂度有: O(1)、 O(logn)、 O(n)、O(nlogn)、O(n2)、O(n3)、O(2n)
1.2 基本概念和术语
9.结点和数据域 一个数据元素在计算机中的表示称为结点,常由若干字节构成。 例一、 DS=(D,R) 200 王五 其中, D={张三、李四、王五} 204 R={r} 208 r={<王五,李四>,<李四,张三> } 例二、 期末成绩单
212 语文
80.5 85 …
学号
0001 0003 …
1.2 基本概念和术语
4.数据对象 数据对象是具有相同构成的数据元素的集合,是数据的一个子集。 学号 姓名 语文 代数 某班的期末成绩单 0001 80.5 90 李明 数组 0003 85 84.5 王刚 自然数数据对象 … … … … 5.数据结构 数据结构是相互之间存在多种特定关系的具有相同构成的数据 元素的有限集合。 由此看出,数据结构首先是一个数据对象, D={di | 1≤i ≤n, n≥0}; 另外,D中元素之间存在多种特定关系, R={rj | 1≤j ≤m, m≥0}, rj为D上的某个二元关系。于是,数据结构可表示为: DS=(D,R)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12
70年代后期,我国高校陆续开设该课程。
《数据结构课程》所处的地位:
13
数据结构的几个相关概念:
数据(Data):是对信息的一种符号表示。在计 算机科学中是指所有能输入到计算机中并被 计算机程序处理的符号的总称。 数据元素(Data Element):是数据的基本单位, 在计算机程序中通常作为一个整体进行考虑 和处理。 一个数据元素可由若干个数据项组成。数据 项是数据的不可分割的最小单位。 数据对象(Data Object):是性质相同的数据 元素的集合。是数据的一个子集。
14
数据类型:在一种程序设计语言中,变量所 具有的数据种类。 例1、 在FORTRAN语言中,变量的数据类型 有整型、实型、和复数型 例2、在C语言中 数据类型:基本类型和构造类型 基本类型:整型、浮点型、字符型 构造类型:数组、结构、联合、指针、枚举 型、自定义
15
什么是数据结构?
定义1---是相互之间存在一种或多种特定关系的数据 元素的集合。
存储结构(物理结构)---数据元素及其关系在计算机存储器中的存储方 式。 是逻辑结构用计算机语言的实现,它依赖于计 算机语言。
运算(算法)
17
数据结构的三个方面的含义之:
逻辑结构---划分方法一
(1)线性结构---有且仅有一个开始和一个终端结点,并且 所有结点都最多只有一个直接前趋和一个 后继。 例如:线性表、栈、队列、串 (2)非线性结构---一个结点可能有多个直接前趋和直接后继。 例如:树、图、多维数组、广义表等。
定义2---按某种逻辑关系组织起来的一批数据(或称 带结构的数据元素的集合)应用计算机语言 并按一定的存储表示方式把它们存储在计算 机的存储器中,并在其上定义了一个运算的 集合。
16
数据结构的三个方面的含义:
逻辑结构--数据元素间抽象化的相互关系(简称为数据结 构)。 与数据的存储无关,独立于计算机,它是从具 体问题抽象出来的数学模型。
数学模型→选择计算机语言→编出程序→测试→最 终解答。
数值计算的关键是:
如何得出数学模型(方程) 程序设计人员比较关注程序设计的技巧。
非数值计算问题:
数据元素之间的相互关系一般无法用数学方程加以 描述
4
非数值计算问题:
例1.1 电话号码查询问题:
(1)按顺序存储方式:须遍历表 (2)按姓氏索引方式:索引 (3)按号码 要写出好的查找算法,取决于这张表的结 构及存储方式。 电话号码表的结构和存储方式决定了查找 (算法)的效率。
5
例1.2 磁盘目录的描述
6
例1.3 田径赛的时间安排问题(无向图的着色
问题) :
设有六个比赛项目,规定每个选手至多可参加三个 项目,有五人报名参加比赛(如下表所示)设计比赛
日程表,使得在尽可能短的时间内完成比赛。
姓 丁 马 张 李 王 名 一 二 三 四 五 项目 1 跳 高 标 枪 标 枪 铅 球 跳 远 项目 2 跳 远 铅 球 100 米 200 米 200 米 项目 3 100 米 200 米 跳 高
18
逻辑结构---划分方法二
一、集合 结构中的数据元素除了同属于一种类型外, 别无其它关系。 二、线性结构 结构中的数据元素之间存在一对一 的关系。数据之间存在前后顺序关系(每一个元素 都有唯一的前驱和后继,第一个元素可以没有前 驱,最后一个可以没有后继) 三、树型结构 结构中的数据元素之间存在一对多 的关系。除一个特殊元素没有前驱外,其他每个元 素都有惟一的前驱,其中无前驱的元素称为树根 四、图状结构或网状结构 结构中的数据元素之间存 在多对多的关系。任一数据元素均可有多个前驱 和后继。
8
丁一
100M 200M 标枪 铅球 跳高 跳远 √ √ √
马二
张三
√ √
李四
王五


√ √
√ √ √ √
9
姓名
丁一 马二 张三 李四 王五
项目1
A C C D B
项目2
B D E F F
项目3
E F A
只需 安排四 个单位 时间进 行比赛
比赛项目
A F D
B
E C
比赛 时间
1 2 3 4
A,C B,D E F
20
逻辑结构、存储结构小结:
(1)数据的逻辑结构、存储结构和数据 的运算(算法)构成了数据结构三个 方面的含义。 (2)程序设计的实质是对实际问题选择 一个好的数据结构,加之设计一个好 的算法。而好的算法在很大程度上取 决于描述实际问题的数据结构。
数据结构(C语言版) Data Structure
主讲教师 秦俊平
1
第一章 绪论
数据结构的概念 算法的概念和描述
算法的简单分析
2
电子计算机的主要用途:
早期:
主要用于数值计算。
后来:
处理逐渐扩大到非数值计算领域 (能处理多种复杂的具有一定结构关系 的数据)。
3
数值计算解决问题的一般步骤:
19
数据结构的三个方面的含义之:
存储结构
存储结构两方面的内容:
(1)数据元素自身值的表示(数据域) (2)该结点与其它结点关系的域(链域)
四种基本的存储方法:
(1)顺序存储方法(结构) (2)链接存储方法(链式存储结构) (3)索引存储方法 (4)散列存储方法 同一种逻辑结构可采用不同的存储方法(以上四 种之一或组合),这主要考虑的是运算方便及算 法的时空要求。
7
解法:
(1)设用如下六个不同的代号代表不同的项目: 跳高 跳远 标枪 铅球 100米 200米 A B C D E F
姓名
丁一 马二 张三 李四 王五
项目1
A C C D B
项目2
B D E F F
项目3
E F A
(2)用顶点代表比赛项目 不能同时进行比赛的项目之间连上一条边。 (3)某选手比赛的项目必定有边相连(不能同时比赛)
10
求解非数值计算的问题:
主要考虑的是设计出合适的数据结构及相应 的算法。 即:首先要考虑对相关的各种信息如何表示、 组织和存储 因此,可以认为:数据结构是一门研究非数值 计算的程序设计问题中计算机的操作对象以及 它们之间的关系和操作的学科。
11Leabharlann 数据结构课程的形成和发展:
形成阶段: 60年代初期,“数据结构”有关的内容 散见于操作系统、编译原理和表处理语 言等课程。1968年,“数据结构”被列 入美国一些大学计算机科学系的教学计 划。 发展阶段: 数据结构的概念不断扩充,包括了网络、 集合代数论、关系等“离散数学结构” 的内容。
相关文档
最新文档