数据结构课件第01章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图
C B
A
D E
求解非数值计算的问题
主要考虑的是设计出合适的数据结构及相应的算法。
即:首先要考虑对相关的各种信息如何表示、组织和存 储? 数据结构的研究对象是:非数值计算的程序设计问题中 计算机的操作对象以及它们之间的关系和操作。
பைடு நூலகம்
5. 数据结构课程的形成和发展
形成阶段:
60年代初期,“数据结构”有关的内容散见于操作系统、 编译原理和表处理语言等课程。1968年,“数据结构”被 列入美国一些大学计算机科学系的教学计划。
例1、 在FORTRAN语言中,变量的数据类型有整型、实型、 和复数型
例2、在C语言中 数据类型:基本类型、指针类型、空类型和结构类型 其中,基本类型包括整型、浮点型、字符型和枚举类型
5. 抽象数据类型(Abstract Data Type简称ADT)
➢抽象数据类型是用户在数据类型基础上新定义的数据类型
➢抽象数据类型定义包括数据组成和对数据的处理操作
➢抽象数据类型是数据和数据的使用者的一个接口
抽象数据类型的三元组表示 (D,S,P) D:数据对象 S:D上的关系集 P:对D的基本操作
ADT的作用——结构与用户无关,提高代码的复用率
抽象数据类型的定义:包括数据对象定义、数据关系定义和 基本操作定义,书写格式为:
ADT 抽象数据类型名{ 数据对象:数据对象的定义 数据关系:数据逻辑关系的定义 基本操作:基本操作的定义 P 8 倒数7行 } ADT 抽象数据类型名 (P9 例 1-6 伪码描述)
P 8 倒数4行
C++的引用类型
引用类型用于给一个变量取一个别名。例如:
int x=0; int &y=x; //y为引用类型的变量 cout << x << ',' << y << endl; //结果为:0,0 y = 1; cout << x << ',' << y << endl; //结果为:1,1
发展阶段:
数据结构的概念不断扩充,包括了网络、集合代数论、关 系等“离散数学结构”的内容。
70年代后期,我国高校陆续开设该课程。
6.《数据结构》课程所处的地位
1.2 基本概念和术语
1. 数据(Data):是对信息的一种符号表示。在计算机科学中 是指所有能输入到计算机中并被计算机程序处理的符号的总 称。
2. 电子计算机的主要用途 早期:
主要用于数值计算。 后来:
应用逐渐扩大到非数值计算领域(能处理多种复杂 的具有一定结构关系的数据)。
数据复杂→数据结构
3. 计算机解决问题的一般步骤
数学模型→算法→程序 (1)数值计算
数学模型→选择计算机语言→编出程序→测试→最终解答。 数值计算的关键是:如何得出数学模型(方程)? 程序设计人员比较关注程序设计的技巧。 (2)非数值计算问题 数据元素之间的相互关系一般无法用数学方程加以描述。
…… ……..
樊映川 华罗庚 栾汝书 …….
001,… 002,…. 004,…. …….
L S ……
002,… 001,003, ……
例3 人机对奕问题
树
……..
……..
…...
…...
…...
…...
例4 多叉路口交通灯管理问题
AB AC AD BA BC BD
DA DB DC EA EB EC ED
在语法上,对引用类型变量的访问与非引用类型 相同;但在语义上,对引用类型变量的访问实际 访问的是另一个变量(被引用的变量)。
引用类型作为函数的参数类型
数据结构(C语言版) Data Structure
主讲教师 马宁 计算机科学学院 软件工程教研室
学习的直接收益
▪编程基础 ▪计算机专业考研课程 ▪计算机等级考试课程 ▪软件资格与水平考试课程 ▪进入优秀企业的敲门砖 盖茨说:学通了这本书(程序设 计技巧,共三卷,其中第一卷主要为数据结构)来找我吧!
第一章 绪论
1.1 数据结构学科的研究对象
1. 什么是程序、软件?
N.沃思(Niklaus Wirth)教授提出:
程序=算法+数据结构 以上公式说明了如下两个问题: (1)数据上的算法决定如何构造和组织数据
(算法→数据结构) (2)算法的选择依赖于作为基础的数据结构
(数据结构→算法) 软件=程序+文档(软件工程的观点)
请同学们重视本课程的学习。
课程安排
总学时:64 学时 讲课学时:48 学时 实验学时:16 学时
教材: 《数据结构》( C语言版)严蔚敏、吴伟民 -----清华大学出版社
《程序设计》课程与《数据结构》课程的关系
《程序设计》强调程序设计的基本概念和做法,如: 数据类型与表达式 程序流程控制 子程序 递归 数据抽象,等
2. 数据元素(Data Element):是数据的基本单位,在计算机 程序中通常作为一个整体进行考虑和处理。
一个数据元素可由若干个数据项组成。
数据项是数据的不可分割的最小单位。
3. 数据对象(Data Object):是性质相同的数据元素的集合, 是数据的一个子集。
4. 数据类型(Data Type):在一种程序设计语言中,变量所 具有的数据种类。
例2 书目自动检索系统
线性表
书目卡片
书目文件
按书名
001 登录号高:等数学
002 003
书名:理 高论 等力 数学 学
004 作者名线:性代数
…… 分类号:……
出版单位:
出版时间:
价格:
樊映川 罗远祥 华罗庚 栾汝书
……
S01 L01 S01 S02 ……
按作者名
索引表 按分类号
高等数学 001,003…… 理论力学 002,…….. 线性代数 004,……
4. 非数值计算问题举例
例1、电话号码查询问题 查找 :给出一个姓名,如果存在,打印此人的电话号码;
如果不存在,报告没有这个人的标志。
(1)按顺序存储方式:须遍历表 (2)按姓氏索引方式:索引 要写出好的查找算法,取决于这张表的结构及存储方式。 电话号码表的结构和存储方式决定了查找(算法)的效率。
《数据结构》强调程序设计思想和技术的典型应用,如: 线性表、栈、队列 检索、排序 图、树,等
两者的内容又有交叉
本课程的体系结构
第一章 绪论 介绍数据、数据结构和抽象数据类型的概念。
第二章 —— 第七章 基本数据结构 从抽象数据类型的角度, 分别讨论线性表、栈和队列、 串、数组和广义表、 树、图等基本数据结构及其应用。