内容正文:
选择性必修1
《数据与数据结构》
浙教版选必1《数据与数据结构》
第一章 数据与数据的组织
高二年级
信息技术组
浙教版选必1《数据与数据结构》
数据结构前言
目录
第一章前言
在数字化时代,数据给日常生活、企业经营、社会管理等方面带来了越来越深刻的影响。例如,导航软件可以根据路况数据规划合理的行车线路;高空气象数据通过超级计算机的计算,可以使气象预报更为准确;企业可以根据销售数据来完善生产计划。进入大数据时代,人们更是通过计算从数据内部挖掘出有用的信息,从而加快社会发展速度。
用计算机处理数据时,需要根据事物之间的关系确定合理的数据结构,并借助数据结构来组织数据、设计算法。数据结构的设计在一定程度上决定了问题求解算法的效率。
参考书籍(本科计算机科学与技术专业)
“计算”题
在平面直角坐标系xOy 中,抛物线y= -x2+ bx +c与x轴交于A(-1,0),B(-3,0)两点。求抛物线的解析式。
从学校到哈站怎样乘车时间最短?怎样乘车步行最少?
谁是世界第一的围棋手?
查看上学期的成绩了吗?
课程学习目标:
1.0 课程的意义、目标以及学习方法建议
数据结构与算法所要解决的问题是选择哪种方式来描述数据并呈现数据之间的关系以及如何编制高效的程序。数据结构与算法是学习计算机领域的其它课程的必备的基础,是从事计算机应用工程的设计和开发的工程技术人员的必修课,也是分析、研究、设计与开发复杂计算机工程问题的入门课程。
1.1 数据结构
数据结构的发展经历三个阶段:
无结构阶段(40~60年代):数据之间的关系以数学公式或者数学模型为主;
结构化阶段(60~80年代):1974年Niklaus提出程序的结构化理念;1968年美国唐•欧•克努特教授开创了数据结构的最初体系;70年代初,数据结构作为一门独立的课程开始进入大学课堂。
面向对象阶段(80年代初期~现在):将数据结构和算法看成一个整体,大量封装类的出现,减少了程序设计者的负担,数据结构因此变得更加友好。
数据结构的发展并未终结,一方面,数据结构将继续随着程序设计技术的发展而不断拓展,另一方面,面向专门领域的数据结构得到研究和发展,出现了各种实用的高级数据结构。
算法
+ 数据结构
Data Structures
= 程序
Programs
Algorithms
1.2.1 基本概念
数据元素(Data Element) 也被称为结点或记录,是数据表中的某个个体,是描述数据的基本单位。
数据结构(Data Structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,基于特定的结构可以设计一些操作以及算法。
数据(Data)是信息的载体,是所有存储于计算机中并能被计算机处理的具有一定意义的数字、字母、符号和模拟量等符号介质的总称。
数据对象(Data Object)是类型和属性相同且赋予一定意义的一类数据的集合,是数据的一个子集。
数据项(Data Item)也称为数据域,是数据元素的不可分割的最小单位,一个数据表中数据元素包含相同类型的数据项,一个数据元素可由若干个数据项组成。
数组
1.1.2 数据的逻辑结构和存储结构
数据的逻辑结构和物理结构是数据结构中密切相关的两个方面,同一逻辑结构可以对应不同的存储结构。
数据的
逻辑结构
数据的逻辑结构是指数据之间的逻辑关系,可以看作是从具体问题抽象出来的数学模型。
常将数据的逻辑结构简称为数据结构。
数据的
物理结构
数据的物理结构是指数据在存储器中存储方式或表示方法。
也称为数据的存储结构。
线性结构(Linear Structure)就是数据表的各个元素之间具有有序关系。第一个元素称为头元素,最后一个元素称为尾元素。一个元素(非头元素)前一个元素称为该元素直接前驱;一个元素(非尾元素)后一个元素称为该元素的直接后继。
非线性结构就是数据表中各个元素之间不具有“有序”关系,一个元素可能有多个直接前驱和多个直接后继。
树形结构(Tree Structure):树形结构中的元素之间呈现一种层次关系。处于最上层的结点称为根结点,根结点没有直接前驱,其他结点有且只有一个直接前驱;没有下一层的结点称为叶结点,叶结点没有直接后继,其他结点可以有一个或多个直接后继。树形结构数据元素之间呈现一对多的关系。
集合结构(Set Structure):集合类型的结构只是限定了数据元素是否属于同一种类型,别无其它特别的关系,是一种松散的逻辑结构。
数据的逻辑结构
18
线性结构
非线性:层次结构之树形结构
a
b
c
d
e
线性结构——一个对一个,如线性表、栈、队列
树形结构——一个对多个,如树
集合——数据元素间除“同属于一个集合”外,无其它关系
1.顺序存储结构将逻辑上相邻的元素存储在物理位置相邻的存储单元中,即将数据存放在一个连续的存储单元中,元素间的逻辑关系可由存储单元的邻接关系直接体现。
2.链式存储结构将数据元素存放在位置任意的存储单元里,这些存储单元可以是连续的,也可以是不连续的,数据元素的存储关系并不能反映其逻辑关系,一般需要在数据元素中添加一些数据项用于指定与该元素相关联的元素的位置(地址)。
3.索引存储结构
4.散列存储结构
数据的物理结构
1.1.3 数据结构的基本操作
数据结构的操作基于数据的逻辑结构,即所有操作都是以保持数据的逻辑结构为前提,但操作的实现则要基于数据的存储结构,不同的存储结构,操作方法也不同。
遍历:遍历就是以某种方式访问数据结构中的每一个元素。
插入:插入操作就是向数据结构中增加新的元素。
删除:删除操作就是移除数据结构中指定的元素。
更新:更新操作是指改变指定元素的一个或多个数据项的值。
对于逻辑结构相同的数据结构,如果采用的操作方式不同,则会得到不同类型的数据结构。
22
数据类型
数据类型
定义:一组性质相同的值的集合, 以及定义于这个值集合上的一组操作的总称.
基本数据类型
char int float double void
字符型 整型 浮点型 双精度型 无值
构造数据类型
由基本数据类型或构造数据类型组成。
1.1.4 数据结构的抽象形式
23
数据类型是模板,必须定义属于某种数据类型的变量,才能参加运算。
如:int a;
class B{} b;
数据类型就是数据结构,不过它是从编程者的角度来使用的。
基本数据类型可以看作是计算机中已实现的数据结构。
数据类型
随堂练习1:被计算机加工的数据元素不是孤立的,它们彼此之间一般存在某种关系,通常把数据元素之间的这种关系称为()。
A、规则
B、结构
C、集合
D、运算
2、计算机所处理的数据一般具有某种关系,这是指()。
A、数据与数据之间存在的某种关系
B、数据元素与数据元素之间存在的某种关系
C、元素内数据项与数据项之间存在的某种关系
D、数据元素内部存在的某种结构关系
解:计算机所处理的数据一般具有某种关系,这是指数据元素与数据元素之间存在的某种关系。在计算机科学中,数据结构是一种组织数据的方式,它描述了数据元素之间的顺序关系和组合方式。数据元素是数据的基本单位,它们之间可能存在各种关系,如一对一、一对多、多对一等。因此,答案为B、数据元素与数据元素之间存在的某种关系。
$