内容正文:
3.2 数据与结构
第三单元 认识数据
泸科版高中《信息技术》 制作人:陆兴涛(博雅高级中学)
1
★ 熟悉队列结构的概念和特点,能够使用 Python 语言对队列进行操作。
★ 了解树、图结构的基本概念及特点。
★ 能够比较不同数据结构的特点,会选用合适的数据结构组织数据解决简单问题。
学习目标
数据与结构
知识点清单
01
数据类型
02
数据结构
简单数据类型
复杂数据类型
集合结构
线性结构(队列、栈)
树结构
图结构
3
新课导入
零散的数据很难被直接利用,我们可以根据不同的数据问题,根据合适关系建立不同的数据结构,那么我们常见的数据结构有哪些呢?
真实世界
信息世界
转换成
数字、文字、图像、声音、视频
存储到
服务于
数据类型
01
任务一 探究网购订单处理
数据类型——简单数据类型
整数
字符串
浮点数
布尔值
6
数据类型——复杂数据类型
数据类型 标识符 是否能修改 是否有序 是否有重复值 例子
列表 [ ] 可修改 是 是 List=[“2374761”,“论语”,34.66,100]
元组 ( ) 不可修改 是 是 Tuple=(“2374761”,“论语”,34.66,100)
字典 { } 键不能改,值可改 否 否 Dict={ “id”:“2374761”, “name” : “论语”, “price”:34.66,”num”:100}
集合 { } 可修改 否 否 Set={2,3,1,5,7}
7
元组
列表
集合
字典
连一连
Set = { , }
List = [ , ]
Dict = { : }
tuple=( ,)
8
数据结构
02
数据结构
数据结构是存在特定关系的数据元素的集合。
集合结构 线性结构 树结构 图结构
10
数据结构——集合结构
f
e
b
s
g
d
r
q
a
t
集合结构
集合中的数据成员是无序的;
每个数据成员在集合中不能重复,仅且只出现一次
11
例如,确定一名学生是否为班级成员,只需将班级看做一个集合结构。
高二(10)班
集合
数据结构——线性结构
线性结构
集合中的数据成员是有序的;
数据元素之间是“一对一的”关系。
1
2
3
4
5
6
3
当前元素
后继元素
前趋元素
首元素
尾元素
给同学们分... text has been truncated due to evaluation version limitation.
13
例如,将学生信息数据按照其入学报到的时间先后顺序进行排列,将组成一个线性结构。
序号 报道时间 姓名 性别 ...
1 2025/7/12 9:00 唐三藏 男 ...
2 2025/7/12 9:10 猪八戒 男 ...
3 2025/7/12 9:20 孙悟空 男 ...
4 2025/7/12 9:30 沙悟净 男 ...
5 2025/7/12 9:40 白骨精 女 ...
2
3
4
5
1
线性结构——队列
队列是一种只能在一端依次添加数据,在另一端依次删除数据。
例如:在超市排队付款
队列
队尾入队
1
3
2
4
5
入队顺序:
出队顺序:
15
2
3
4
5
1
线性结构——队列
队列是一种只能在一端依次添加数据,在另一端依次删除数据。
例如:在超市排队付款
队列
1
3
2
4
5
队首出队
入队顺序:
出队顺序:
2
3
4
5
1
先进先出
16
2
3
4
5
1
线性结构——栈
栈是一种只能在一端进行添加和删除操作的特殊线性结构。
例如:叠盘子
栈
入栈
1
3
2
4
5
入栈顺序:
出栈顺序:
17
2
3
4
5
1
线性结构——栈
栈是一种只能在一端进行添加和删除操作的特殊线性结构。
例如:叠盘子
栈
出栈
1
3
2
4
5
入栈顺序:
出栈顺序:
5
4
3
2
1
先进后出
18
任务二 探究快递配送过程
派送点
学校收发室
某单位传达室
收件人A同学
收件人B同学
职工小王
职工小李
※ 活动1 了解快递派送线路
请你尝试在下面框中画出多个快件从派送点到不同收件人所经过的线路。
数据结构——树结构
树结构
集合中的数据成员是有序的;
数据元素之间是“一对多”的关系。
快递到达目的地城市后,物流图的结构呈树结构。
图结构
集合中的数据成员是有序的;
数据元素之间是“多对多”的关系。
数据结构——图结构
※ 活动3 规划取快递最快路线
地点—地点 时间/分
家—快递门店A 2
家—快递门店B 5
家—快递门店C 10
快递门店A—快递门店B 4
快递门店A—快递门店C 6
快递门店B—快递门店C 4
某同学网购的书已经到达家附近的快递门店,需要他自己去取。不巧的是,这次购买的三本书是三个不同的物流公司派送的。
利用图我们可以更清晰地知道数据间的关系,从而解决问题。
利用树结构,我们能够更清晰地实现不重复、不遗漏地列举所有做法,更利于通过比较得到最优解。
数据结构的比较
结构类型 数据(节点)之间的关系 生活中相应的应用举例
队列(线性)
树
图
一对一
排队付款、医院就诊排队
一对多
行政区划、书的目录结构、磁盘文件的存储结构
多对多
全国航运图、铁路运输图、高速公路网
当堂小结
当堂训练
1.下列关于数据结构的说法,正确的是( )
A.数据的逻辑结构是指数据在计算机中的存储方式
B.链表比数组更适合大量数据元素的随机访问
C.数据的逻辑结构是指数据元素间的关系
D.数组不必占用一片连续存储的单元
答案:C
2.图结构是一种由节点(顶点)和节点间连线(边或弧)构成的数据结构。下列说法错误的是( )
A.图结构中数据元素之间是一对多的关系
B.图可以分为有向图和无向图
C.相连顶点之间的边或弧的权表示两个节点之间的某种关系
D.边或弧带权的图称为网
答案:A
3.某个车站呈狭长形,宽度只能容下一台车,且只有一个出入口。已知某时刻车站状态为空,从这一时刻开始的出入记录为:“进,出,进,进,进,出,出,进,进,进,出,出”。假设车辆入站顺序为1,2,3,……,则车辆出站的顺序为( )
A.1,2,3,4,5
B.1,2,4,5,7
C.1,4,3,7,6
D.1,4,3,7,2
答案:C
第1步(进):车辆1入站
第2步(出):车辆1出站(出站序列首位为1)
第3步(进):车辆2入站
第4步(进):车辆3入站
第5步(进):车辆4入站
第6步(出):车辆4出站(后进先出,出站序列次位为4)
第7步(出):车辆3出站(出站序列第三位为3)
第8步(进):车辆5入站
第9步(进):车辆6入站
第10步(进):车辆7入站
第11步(出):车辆7出站(出站序列第四位为7)
第12步(出):车辆6出站(出站序列末位为6)
填空题
1.数据结构分为逻辑结构和存储结构,数组属于______结构,链表属于______结构。
2.队列是一种先进先出(FIFO)的数据结构,只允许在______进行插入操作,在______进行删除操作。
逻辑
存储
队尾
队首
上机操作
listque=[] #定义列表listque存储订单
x=0
while(x!=4): #当x=!4时,执行循环
print('1. 添加订单')
print('2. 发货')
print('3. 查看订单列表')
print('4. 退出')
x=int(input("输入你的选择:")) #输入选择项
if x==1:
y=input("输入订单编号:") #输入订单编号
______________________ #在列表listque中添加订单号
elif x==2:
if len(listque)==0: #如果订单列表为空
print("订单列表为空")
else:
____________________ #在列表listque中删除订单号
elif x==3:
print("等待发货:",listque) #查询列表listque中的订单号
print()
input("运行完毕,请按回车键退出...")
listque=[] #定义列表listque存储订单
x=0
while(x!=4): #当x=!4时,执行循环
print('1. 添加订单')
print('2. 发货')
print('3. 查看订单列表')
print('4. 退出')
x=int(input("输入你的选择:")) #输入选择项
if x==1:
y=input("输入订单编号:") #输入订单编号
listque.append(y) #在列表listque中添加订单号
elif x==2:
if len(listque)==0: #如果订单列表为空
print("订单列表为空")
else:
print("发货单号:"+listque.pop(0))
elif x==3:
print("等待发货:",listque) #查询列表listque中的订单号
print()
input("运行完毕,请按回车键退出...")
请你完善下列Python程序,模拟添加订单和发货的过程。append()函数在列表尾部添加元素,pop()函数删除列表元素。
谢谢观看
高中信息技术《数据与计算》科教版 制作人:陆兴涛
36
$