2021学年1.2 数据的组织结构教课内容课件ppt
展开了解三种数据组织结构,理解数据结构的概念
掌握数据结构的两种存储方式
情境导入——图书馆的图书数据的组织方式
日常生活中,人们有时候把图书随意摆放,久而久之会形成杂乱无章的书堆,如图1. 2. 1所示。从没有条理的书堆中找到某本书是非常困难的。 当你走进学校图书馆的借阅室,看到的是一排排在书架上码放整齐的图书,图书管理员还为每本书编上了索书号,同一层书架上的图书都按照索书号依次排列,如图1. 2. 2所示。书架上码放整齐的图书之间就具有了一定关庄书架上查找图书,取走图书和话入图书站有了一定的“相矩”
根据图1.2.2中
图1.2.2书架上排列的图书
情境导入——QWERTY键盘
运行程序样例,得到字频统计
瑞士计算机科学家沃斯(N.Wirth)曾指出“算法+数据结构=程序”
数据元素是数据的基本单位。有些情况下,数据元素也称为元素、结点、顶点、记录等。
图1.2.1 数据元素及其包含的数据项
图1.2.1所示二维表中,每一行实际内容(也称为一条记录)就是数据元素,而每个元素又由5个数据项(“代码”“名称”“最新价格”“动态市盈”“流通股本”)组成。
1. 数据元素(Data Element)
2. 数据类型(Data Type)
数据类型指的是具有相同性质的计算机数据的集合及在这个数据集合上的一组操作。
数据类型可以分为基本数据类型(也称为原子数据类型)和结构数据类型。
结构数据类型是在程序设计时利用基本数据类型构造出的、复合的新类型,这种新类型由用户根据实际需要定义,能较好地描述数据元素数据项组成以及数据元素之间的逻辑关系,方便用户根据数据之间逻辑关系的特点进行数据处理,如很多编程语言中提供的记录类型、集合等。
3. 数据结构(Data Structure)
数据结构指的是数据之间的相互关系,即数据的组织形式。
它包括了以下三个方面的内容:
①数据元素之间的逻辑关系,也称为数据的逻辑结构。②数据元素及其关系在计算机存储器内的表示,也称为数据的存储结构或物理结构。③数据的运算,即对数据施加的操作。
常见的数据结构——数组
李彤 张强 胡洁 杜刚
第1个 第2个 第3个 第4个
这批数据序列可用数组“a(1)="李彤"、a(2)="张强"、a(3)="胡洁"、a(4)="杜刚"”来表达。
常见的数据结构——链表
吴坚知道自己排在首位,王林知道排在自己前面的是吴坚,黄刚知道排在自己前面的是王林,李丰知道排在自己前面的是黄刚。有了这些相邻人员之间的链接关系,即使休息时大家分散在各处,一旦需要集合,大家可以根据链接关系快速地按照原顺序排成队伍。虽然整队前后每个人员的站位地点发生改变,但相互之间排队的顺序关系是不变的。
游戏体验“排排队”1.准备2组1-6的数字2.一组1-6随机贴在6位志愿者的胸前,一组1-6随机贴在志愿者的背后(每位自愿者两个数组不同)3.确定一位同学站在队首,然后每位志愿者根据胸前数字与排定同学背后数字配对完成排队。
抽象化后的排队链接关系
组织、处理一批数据时,若不关心数据实际所处的具体位置,而只需知道数据之间相互链接的顺序时,可以借鉴上面的方法。在计算机科学中,这种方法的具体实现形式就是链表。
基于单向链表的循环链表
车站或者机场为了方便旅客了解最新出乘信息,会在电子屏上滚动显示最近的班次信息(如图1.2.9所示)。该系统内部程序控制滚动显示可以采用怎样的数据结构?主要算法又是怎样的?
常见的数据结构——队列
乘客排队时先到的总是从队伍的头部出去(出队)上车,而后到的乘客则必须在队伍的尾部加入(入队)。同时,为了确保有序,人们总是规定不能从队伍的中间部位插队。
用计算机程序处理数据时,有时也需要将数据进行“排队”,并遵循现实中排队的规律,对数据进行“先进先出” FIFO(First In First Out)且中间不能“插队”的组织和操作,计算机科学家由此发明了“队列”这种数据结构。
子弹进出弹匣的过程具有下列特点:①整个装置只有一端开放(最上端),而且进、出只能在这一端进行。②弹匣中的子弹成一纵队排列。③任何子弹进出弹匣的规律是“先进后出、后进先出”,即最先装入弹匣的子弹最后才能被弹出,而最后装入弹匣的子弹则最先被弹出。
在文字处理软件Wrd中输入若干文字,然后删除其中部分文字,再输入若干文字。然后进行“撤消”操作(按Ctrl+Z键,或者单击撤消操作快捷按钮“ ”)。观察各个操作后的现象,回答下列问题。(1)根据“撤消”操作所产生的结果,说明Wrd中符号输入及撤消操作中,内部所依托的数据结构是哪种数据结构?为什么?(2)结合自己的经历,谈谈哪些信息系统中也采用了栈这种数据结构。
分小组讨论,举出在生活和信息系统中用树组织数据的例子,并用树结构描述数据之间的关系特征。
1. 设计算法解决问题离不开数据结构
数据统计前,需要先收集数据并将数据按照既有的逻辑关系进行结构化组织,可以用一张表格来组织数据并表示数据之间的逻辑关系。
2. 不同数据结构会导致处理效率的不同
其中的bjdf(j)表示第j班的总分
(1)用一维数组组织数据
(1)用二维数组组织数据
不同数据结构会导致处理效率的不同
生产厂家总会根据各地产品销量的数据分析来预估市场情况,并为后续调整生产规划、完善营销策略提供依据。 由于数据量巨大,为了充分运用分布式处理的优势,总部会要求各下属地区上报数据时,按各产品销量进行从大到小的排序。总部收到数据后的第一件事是将所有数据合并并按照销量进行降序排序(从大到小),为了完成数据合并和整理工作,总部数据分析员小刚需要设计合适的数据结构和算法。
小刚可以用一个二维数组存储所有下属地区的产品销量数据,然后直接运用排序算法进行降序排序。如果利用既有数据已是分块有序的特点,设计新的数据结构和算法,则处理效率可以得到相应的提升。 各个地区的数据合并问题可以简化为2个地区的数据合并问题,当2个地区的数据合并完成后,剩余各地区的数据合并就可以按照同样方式完成。因此,接下来着重分析2个地区的数据合并问题。
设第1个地区共有n个产品销量数据,第2个地区共有m个产品销量数据。为了简化描述,突出核心部分的分析,考虑将问题抽象为n个有序整数和m个有序整数的合并问题,具体的问题模型如下:
已知一个降序排列的整数数列A :a1,a2,a3,…,an以及一个降序排列的整数数列B:b1,b2,b 3,…,bm ,将两个数列合并形成一个新的有序数列C,使新数列仍按降序排列,即c1≥c2≥c3≥…≥ck≥ck+1≥…≥cn+m(其中ck ∈A或者ck ∈B)。请完成解决该问题的数据结构和算法的设计。
第二步 设计、描述算法
1. 基于数组的算法设计与描述
(1)将数组a中所有元素存储到数组c的前n个位置中;
(2)将数组c右边的m个元素赋值为–1(c(n+1)直到c(n+m));
(3)变量p赋值为0,将表示数组c中有效元素总个数的变量tt赋值为n ;
(4)将数组b中元素b(i)逐个插入到数组c中(1≤i≤m):
①p值增加1;②如果c(p)>b(i),那么使p值增加1;③如果c(p)=–1,那么直接将b(i)存储到c(p)中,同时tt值增加1;④ 如果c(p)≤b(i),那么依次将c(tt),c(tt–1),…,c(p)向右移动一个位置,然后将b(i)存储到c(p)中,同时tt值增加1。
②如果c(p)>b(i),那么使p值增加1;
2. 基于链表的算法设计与描述
对自己和同伴的表现进行客观的评价,并思考后续完善的方向。(5=优秀,4=超出一般水平,3=满意,2=有待改进,1=不太理想)
高中信息技术教科版 (2019)必修1 数据与计算1.2 数据的计算集体备课ppt课件: 这是一份高中信息技术教科版 (2019)必修1 数据与计算1.2 数据的计算集体备课ppt课件,共17页。PPT课件主要包含了学习目标,小组讨论,假设法,抬腿法,方程法,列表法,数据的筛选,利用函数计算,常见函数,自动计算等内容,欢迎下载使用。
浙教版 (2019)选修1 数据与数据结构1.2 数据的组织优秀ppt课件: 这是一份浙教版 (2019)选修1 数据与数据结构1.2 数据的组织优秀ppt课件,文件包含12数据的组织课件pptx、12数据的组织教学设计doc等2份课件配套教学资源,其中PPT共38页, 欢迎下载使用。
浙教版 (2019)选修1 数据与数据结构1.2 数据的组织备课课件ppt: 这是一份浙教版 (2019)选修1 数据与数据结构1.2 数据的组织备课课件ppt,共38页。PPT课件主要包含了基本数据类型,结构数据类型,数据合并案例,第一步抽象与建模,链表a,heada,链表b,headb等内容,欢迎下载使用。