(共28张PPT)
10110(2)=__________(10)
任意R进制数——>十进制数:______________(R>=2,R!=10)
100(10)=__________(2)
十进制数——>任意R进制数:__________(R>=2,R!=10)
复习回顾
ASCII(American Standard Code for information Interchange)是美国信息交换标准代码,它不可以表示下列( )A.英文字母 B.数字
C.中文汉字 D.符号
英文字母A的ASCII码为01000001,英文字母D的ASCII码转化为十进制后是( )
A.64 B.65 C.68 D.70
22
按权展开求和
1100100
除R取余法
C
C
3.2 数 据 与 结 构
学 习 目 标
熟悉队列结构的概念和特点,能够使用Python语言对队列进行操作
能够区分简单数据类型与复合数据类型
了解各种数据类型
一、数据类型
整数
(int)
浮点数
(float)
字符串
(str)
布尔
(bool)
type(8)
type(“hello”)
type(13.5)
type(1==2)
一、数据类型
(一)简单数据类型
1.包括正整数、负整数和0
2.位数是任意的
单引号、双引号和三单/双引号(单引号和双引号中的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的行上。)
True(真)和False(假)
布尔值可以转化为数值进行算术运算:True——>1,False——>0
含小数部分
StuList=[10, 'file', 2.0]
列表[ list ]
dictionary={'a':1, 'b':2, 'c':3}
字典{ dict }
StuSet={StuInfo0,StuInfo1}
集合{ set }
StuInfo0=('一班', 16)
StuInfo1=('二班', 17)
元组(tuple)
一、数据类型
二、复合数据类型
一、数据类型
1.以下不是简单数据类型的是( )A.float B.str C.bool D.dict2.以下是简单数据类型的是( )A.tuple B.set C.int D.list
3.以下语句是定义空列表的是( )
A.Bookset={ } B.q=[] C.num=( ) D.dictionary=dict()
D
C
B
二、数据结构
组织
零散孤立的数据
结构化的数据
如何有效地操作和管理数据?
集合结构
01
线性结构
02
树结构
03
图结构(网状结构)
04
二、数据结构
数据结构(又称逻辑结构):
存在特定关系的数据元素的集合。
三、线性结构
在线性数据结构中,除首元素没有前趋元素、尾元素没有后继元素外,其他元素都只有一个前驱元素和一个后继元素。
线性表中数据元素之间是一对一的关系。
三、线性结构
排队候车
队列
队列是一种有限制的线性结构,它的数据元素只能在一端依次添加(进队),在另一端依次删除(出队)。
先进先出 ( FIFO: First In First Out )
1,2,3,4,5
出队
入队
队首
队尾
#定义空列表q
#返回队首元素,队首元素出队(删除)
#返回列表q中索引(index)为i的元素。
正编号(从左到右编号依次为0,1,2,…)
负编号(从右到左编号依次为-1,-2,-3,…)
#元素x入队
#返回队列q的长度(元素个数)
q=[]
q.append(x)
q.pop(0)
len(q)
q[i]
四、队列
在Python中,队列一般用列表(list)实现
四、队列
listque=[]
x=0
while (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=[]
x=0
while (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)) #删除列表listque的首元素,表示发货
elif x==3:
print(listque)
复习回顾
整数
浮点数
字符串
布尔
元组
列表
集合
字典
bool
set
tuple
int
str
list
dict
float
简单数据类型
复杂数据类型
q=[]
q.append(x)
q.pop(0)
len(q)
q[i]
#定义空列表
#元素x入队
#删除首元素并出队
#求队列长度
#列表索引为i的元素
一、树结构
任何一个非空树均满足以下两个条件:
(1)仅有一个称为根的节点;
(2)当n>0时,其余节点可分为m(m≥0)个互不相交的有限集合,其中每个集合又是一棵树, 并称为根的子树。
1.A是B,C,D的根节点,B,C,D是A的子树;
2.B是E,F,G的根节点,E,F,G是B的子树;
五、树结构
数据元素之间是一对多关系
树结构是一种具有层次关系的非线性结构。
01
树是由n(n≥0)个节点组成的有限集合。若n = 0, 则称为空树。
02
六、图结构
岳阳
南通
扬州
泰州
长沙
岳阳
南京
扬州
长沙
长沙市
南京市
泰州市
六、图结构
岳阳
南通
扬州
泰州
长沙
岳阳
南京
扬州
长沙
长沙市
南京市
泰州市
图结构是由一组节点(称为顶点)和一组节点间的连线(称为边或弧)构成的一种数据结构。
图结构中的每个顶点都可以与其他顶点有边相连,图结构中数据元素之间是多对多的关系。
六、图结构
六、图结构
在物流网络中,分拨中心、配送中心、货物需求点等可以抽象为图的顶点,城市道路、各级铁路等可以抽象为图的边,如城市以及城市之间的运输道路就是图结构。利用图结构,我们还可以解决物流中的许多问题,如道路网络分析、车辆运营安排等。
课堂练习
1.有一种元素除首元素没有前驱元素、尾元素没有后继元素外,其它元素都只有一个前驱元素和一个后继元素。具有以上特点的数据结构是( )A.树结构 B.选择结构 C. 线性结构 D.网状结构 2.由一组节点(称为顶点)和一组节点间的连线(称为边或弧),构成的一种数据结构是( )A. 图结构 B.选择结构 C. 线性结构 D. 树结构
C
A
规划取快递最快路线
规划取快递最快路线
我们可以把该同学家和各个快递门店的位置抽象成顶点,两个位置间的步行线路抽象为边,边上的值表示步行时间。
规划取快递最快路线
从起点(家)出发,把当前可以到达的下一个位置列举出来,再从列举出的新位置出发,继续列举下一步可以到达的位置,以此类推,直到返回起点。
分析过程的图形是树结构
树中的节点表示当前所在的位置,边表示选择的线路。
利用树结构,我们能够更清晰地实现不重复、不遗漏地列举所有做法,更利于通过比较得到最优解。
对比分析
一对一
一对多
多对多
排队
行政区划、书的目录结构
全国航运图、铁路运输等
课堂小结
数据与结构
数据类型
复合数据类型
整型(int)浮点型(float)
字符串(str)布尔型(bool)
元组:tuple=() 列表:list=[ ]
集合:set={ } 字典:dict=([ ],[ ])
集合结构
线性结构(队列)
树结构
图结构
简单数据类型
数据结构
谢谢
TAHNK YOU FOR WATCHING