内容正文:
1.1&1.2数据与数据的组织
信息技术 选考课程
学习目标
1、理解数字、数值和数据的含义及区别。
2、理解数据元素、数据项的区别。
3、了解数据类型的分类。
4、初步理解数据结构的概念及其作用。
5、了解常见数据结构的特点(重点)。
6、能够选择合适的数据结构表达数据的逻辑关系(重点)。
59
169
38
35
20%
一、数据、数字和数值
数字:由阿拉伯数字或其他含义相同的符号表示。
本身没有意义,没有量的含义,只有在具体情境中才有实际意义。
数值:由数字符号组成的、具有量的意义的、可以进行算术运算的数据。编程时,给变量和常量设定数值的数据类型,可实现算术运算。
数据表现形式有: 不仅有数字、数值,还有文字、图形、图像、音频、视频、 动画、手语等其他肢体语言、条形码、二维码等。
数据处理的过程:收集-->表示-->组织-->加工分析
单独的数字符号如:2路公交车中的2、学号18132、邮政编码31400、手机号码18057150069不能参与算术运算(数字),而2千米中的2是可以参与算术运算的(数值)。
体重
身高
鞋码
年龄
体脂率
59
169
38
35
20%
二、初识数据结构
姓名 电话 性别 年龄 身高 体重
阮启发 157…… 男 16 1.78 126
周宇田 132…… 女 16 1.67 90.1
彭嘉华 186…… 男 16 1.75 121
…… …… …… …… …… ……
技术选考班电话簿
数据元素:数据的基本单位
数据项:最小单位
数据项的值:1.78
数据类型
字符串型
整型
实型
基本数据类型(原子数据类型)
结构数据类型
数组 链表 队列 栈
二、初识数据结构:指的是数据之间的相互关系,即数据的组织形式。
姓名代表的数据有先后
位置代表的内存空间有先后
新建/增加/删除/查找/修改
除非特殊说明,数据结构一般指向的是逻辑结构
①数据元素之间的逻辑关系,也称为数据的逻辑结构
②数据元素及其关系在计算机存储器内的表示,也称为数据
的存储结构或物理结构
③数据的运算,即对数据施加的操作
三、常见的数据结构
选择合适的数据结构来组织与存储数据,达到高效处理数据的目的。
线性结构
非线性结构
数组
链表
队列
栈
树
三、常见的数据结构 – 数组(逻辑结构和存储结构一致)
1、适用条件:不仅需要描述数据对象本身,还要描述数据所处的位置或者数据之间的前后顺序关系。
2、特点:可以快速通过数组下标精确访问序列中的某个数据元素,又可以通过变量名后面的下标依次按顺序遍历序列中的每个数据元素。
姓名 年龄 身高 体重
阮启发 16 178 125
周宇田 16 167 90
彭嘉华 16 180 123
…… …… …… ……
xm[i] age[i] sg[i] tz[i]
“阮启发”
“周宇田”
“彭嘉华”
........
内存
xm[0]
xm[1]
xm[2]
python语言为例:
xm = [“阮启发”,”周宇田”,”彭嘉华”]
一维数组
8
三、常见的数据结构 – 链表(逻辑结构和存储结构不一定一致)
1、适用条件:只需要知道相邻人员之间的前后顺序关系,而对每个人员的位置信息不做要求。
2、特点:查找某个元素只能从head指针进入按照顺序依次查找,效率低于数组。
三、常见的数据结构 – 链表
李丰
黄刚
王林
^ 吴坚
数据域
指针域
head
空指针
None
头指针
尾节点
头节点
tail
前面是谁?你是谁?
10
三、常见的数据结构 – 链表分类
单向链表
双向链表
单链表的基础上,增加一个指向前趋节点的链接
基于单向链表的循环链表
单链表的基础上,在链表的首尾之间增加链接
双向链表
理解:前驱节点 后继节点
三、常见的数据结构 – 队列(先进先出)
用计算机程序处理数据时,有时也需要将数据进行“排队”,并遵循现实中排队的规律,对数据进行“先进先出” FIFO(First In First Out)且中间不能“插队”的组织和操作,计算机科学家由此发明了“队列”这种数据结构。
三、常见的数据结构 – 队列FIFO(先进先出)
出队
(删除元素)
入队
(插入元素)
队首元素
队尾元素
三、常见的数据结构 – 栈(先进后出)
1、所有操作只能在一端(称为栈顶)进行。
2、数据的读取(称为出栈)和插入(称为入栈)操作。
弹匣的装弹过程(入栈)
栈底元素
栈顶元素
举例:word“撤销”操作、网页“后退”
消毒桶中的餐盘取放
三、常见的数据结构 – 树
一个元素前面(或上面)最多只有一个元素,而后面(或下面)却有多个(0个或多个)元素相邻,所有的数据元素之间的特征就像一棵倒放的树。
根节点 上面没有元素
四、总结
线性结构
非线性结构
线性结构:数据元素之间存在前后有序的一对一的关系。
树形结构:数据元素之间存在一对多的关系。
连续性
链接
先进先出
先进后出
不能插队
数组
链表
队列
栈
树
$$