《基础数据结构算法ppt课件》由会员分享,可在线阅读,更多相关《基础数据结构算法ppt课件(70页珍藏版)》请在金锄头文库上搜索。
1、信息学奥林匹克竞赛信息学奥林匹克竞赛任课教师:郑文云、岳水平任课教师:郑文云、岳水平Tel:Tel:1351808077713518080777、1317890671113178906711采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物一、单项选择题(一、单项选择题(共共1010题,每题题,每题1.51.5分,共计分,共计1515分。每题有且仅有一分。每题有且仅有一个正确答案个正确答案. .)。)。二、不定项选择题二、不定项选择题(共(共1010题,每题题,每题1.51.5分,共计分,共计1515分。每题正
2、确答案分。每题正确答案的个数大于或等于的个数大于或等于 1 1。多选。多选 或少选均不得分)。或少选均不得分)。三、问题求解三、问题求解(共共2 2题,每题题,每题5 5分,共计分,共计1010分)分)四、阅读程序写结果四、阅读程序写结果(共(共4 4 题,每题题,每题8 8 分,共计分,共计3232 分)分)五、完善程序五、完善程序( (前前5 5空,每空空,每空2 2分,后分,后6 6空,每空空,每空3 3分,共分,共2828分分) )全国青少年信息学奥林匹克联赛全国青少年信息学奥林匹克联赛初赛试题题型初赛试题题型(时间:(时间:2 2小时)小时) 采用PP管及配件:根据给水设计图配置好P
3、P管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物一、奥赛相关简介和语言一、奥赛相关简介和语言NOIPNOIP:全国青少年信息学奥林匹克联赛(:全国青少年信息学奥林匹克联赛(10-1110-11)冬令营冬令营:全国青少年信息学奥林匹克竞赛冬令营(:全国青少年信息学奥林匹克竞赛冬令营(2-32-3)NOINOI:全国青少年信息学奥林匹克竞赛:全国青少年信息学奥林匹克竞赛 (7-87-8)()(4 4男男1 1女)女)网上同步赛网上同步赛夏令营夏令营:全国青少年信息学奥林匹克竞赛夏令营:全国青少年信息学奥林匹克竞赛夏令营选拔赛选拔赛:选拔参加国际信息学奥
4、林匹克竞赛的中国代表队的:选拔参加国际信息学奥林匹克竞赛的中国代表队的竞赛竞赛 (4-54-5)()(noinoi前前2020名)名)APIO2007:亚洲与太平洋地区信息学奥林匹克:亚洲与太平洋地区信息学奥林匹克 IOIIOI:国际奥林匹克竞赛(:国际奥林匹克竞赛(8-98-9)1 1、竞赛简介、竞赛简介采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物一、奥赛相关的知识和语言一、奥赛相关的知识和语言free pascal free pascal 、gcc/g+ gcc/g+ (c+c+)2 2、竞赛语言、竞
5、赛语言采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物二、计算机的产生和发展二、计算机的产生和发展世界上的第一台计算机(世界上的第一台计算机(ENIACENIAC)于)于19461946年诞生在美国宾夕年诞生在美国宾夕法尼亚大学法尼亚大学 第一代电子管计算机第一代电子管计算机,始于,始于19461946年,结构上以年,结构上以CPUCPU为中心,为中心,使用计算机语言,速度慢,存储量小,主要用于数值计算;使用计算机语言,速度慢,存储量小,主要用于数值计算; 第二代晶体管计算机第二代晶体管计算机,始于,始于19
6、581958年,结构上以存储器为中心,年,结构上以存储器为中心,使用高级语言,应用范围扩大到数据处理和工业控制;使用高级语言,应用范围扩大到数据处理和工业控制; 第三代中小规模集成电路计算机第三代中小规模集成电路计算机,始于,始于19641964年,结构上仍以年,结构上仍以存储器为中心,增加了多种外部设备,软件得到了一定的发存储器为中心,增加了多种外部设备,软件得到了一定的发展,文字图象处理功能加强;展,文字图象处理功能加强; 第四代大规模和超大规模集成电路计算机第四代大规模和超大规模集成电路计算机,始于,始于19711971年,应年,应用更广泛,很多核心部件可集成在一个或多个芯片上,从而用更
7、广泛,很多核心部件可集成在一个或多个芯片上,从而出现了微型计算机出现了微型计算机 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物二、计算机的产生和发展二、计算机的产生和发展我国从我国从19561956年开始电子计算机的科研和教学工作,年开始电子计算机的科研和教学工作,19831983年研制成功年研制成功1 1亿亿/ /秒运算速度的秒运算速度的“银河银河”巨型计算机,巨型计算机,19921992年年1111月研制成功月研制成功1010亿亿/ /秒运算速度的秒运算速度的“银河银河IIII”巨型计巨型计算机,算机
8、,19971997年研制了每秒年研制了每秒130130亿运算速度的亿运算速度的“银河银河IIIIII”巨型计算机。巨型计算机。1999年,银河四代巨型机研制成功。年,银河四代巨型机研制成功。 2000年,我国自行研制成功高性能计算机年,我国自行研制成功高性能计算机神威神威I,其主要,其主要技术指标和性能达到国际先进水平。我国成为继美国、日本技术指标和性能达到国际先进水平。我国成为继美国、日本之后世界上第三个具备研制高性能计算机能力的国家。之后世界上第三个具备研制高性能计算机能力的国家。 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆
9、度,保持熔接部位干净无污物三、计算机系统及工作原理三、计算机系统及工作原理1.1.计算机的系统组成计算机的系统组成 计算机系统由计算机系统由软件软件和和硬件硬件两部分组成。两部分组成。输入输出:触摸屏输入输出:触摸屏采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物三、计算机系统及工作原理三、计算机系统及工作原理存储器:存储器:具有记忆功能的物理器件,用于存储信息。存储器分为具有记忆功能的物理器件,用于存储信息。存储器分为内存和外存内存和外存内存是半导体存储器内存是半导体存储器( (主存):主存):它分为只读存
10、储器它分为只读存储器(ROM)(ROM)和随机存储器和随机存储器(RAM)(RAM)和高速缓冲存储器和高速缓冲存储器(Cache)Cache);ROM:ROM:只能读,不能用普通方法写入,通常由厂家生产时写入,写只能读,不能用普通方法写入,通常由厂家生产时写入,写入后数据不容易丢失,也可以用特殊方法(如紫外线擦除入后数据不容易丢失,也可以用特殊方法(如紫外线擦除(EPROM)EPROM)或电擦除或电擦除(EEPROM_)(EEPROM_)存储器存储器) );RAM:RAM:可读可写,断电后内容全部丢失;可读可写,断电后内容全部丢失;Cache:Cache:因为因为CPUCPU读写读写RAMRA
11、M的时间需要等待,为了减少等待时间,在的时间需要等待,为了减少等待时间,在RAMRAM和和CPUCPU间需要设置高速缓存间需要设置高速缓存Cache,Cache,断电后其内容丢失。断电后其内容丢失。 外存外存:磁性存储器:磁性存储器软盘和硬盘;光电存储器软盘和硬盘;光电存储器光盘,它光盘,它们可以作为永久存器;们可以作为永久存器; 存储器的两个重要技术指标:存储器的两个重要技术指标:存取速度和存储容量。存取速度和存储容量。内存的存内存的存取速度最快取速度最快( (与与CPUCPU速速 度相匹配度相匹配) ),软盘存取速度最慢。存储容量,软盘存取速度最慢。存储容量是指存储的信息量,它用字节是指存
12、储的信息量,它用字节(Byte)(Byte)作为基本单位,作为基本单位,采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物三、计算机系统及工作原理三、计算机系统及工作原理1.1.计算机的系统组成计算机的系统组成 计算机系统由计算机系统由软件软件和和硬件硬件两部分组成。两部分组成。LinuxLinux、unixunix、DOSDOS、NTNT等等采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物三、计算机系统及工作原理三、计算机系
13、统及工作原理到目前为止到目前为止, ,电子计算机的工作原理均采用电子计算机的工作原理均采用冯冯. .若依曼若依曼的存储程的存储程序方式序方式, ,即把程序存储在计算机内即把程序存储在计算机内, ,由计算机自动存取指令(计由计算机自动存取指令(计算机可执行的命令算机可执行的命令= =操作码操作码+ +操作数)并执行它。操作数)并执行它。2.2.计算机的工作原理计算机的工作原理采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物三、计算机系统及工作原理三、计算机系统及工作原理2.2.计算机的工作原理计算机的工作原理(
14、1 1)运算器)运算器用于进行加、减、乘、除等算术运算以及逻辑运算。运算器用于进行加、减、乘、除等算术运算以及逻辑运算。运算器是决定计算机运算速度的主要环节。是决定计算机运算速度的主要环节。(2 2)控制器)控制器用于控制并协调计算机各部分工作流程与顺序。用于控制并协调计算机各部分工作流程与顺序。(3 3)存储器)存储器存储器由许多存储单元,用于存储程序和数据。存储器由许多存储单元,用于存储程序和数据。(4 4)输入设备)输入设备用于把程序及原始数据转换成计算机可以识别的代码并送入存储用于把程序及原始数据转换成计算机可以识别的代码并送入存储器中保存。器中保存。(5 5)输出设备)输出设备用于送
15、出计算机运行的结构及人们所需要的信息。用于送出计算机运行的结构及人们所需要的信息。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物四、计算机中有关数及编码四、计算机中有关数及编码 在计算机中,所有的数据、指令以及一些符合等都是用在计算机中,所有的数据、指令以及一些符合等都是用特定的二进制代码表示的。特定的二进制代码表示的。b b:一位二进制码叫做一比特(一位二进制码叫做一比特(bitbit),它是计算机能处理和存储),它是计算机能处理和存储的最小单位。的最小单位。字节(字节(B B):八位二进制码叫做一个字节
16、(:八位二进制码叫做一个字节(ByteByte),计算机的存),计算机的存 储容量就是以字节为单位计算的。储容量就是以字节为单位计算的。计算机中存贮容量的单位:字节(计算机中存贮容量的单位:字节(ByteByte),用),用 B B 表示:表示: 字节字节1B=8b1B=8b 千字节千字节1KB=1024B 1KB=1024B 兆字节兆字节1MB=1024KB1MB=1024KB 千兆千兆1GB=1024MB1GB=1024MB采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物四、计算机中有关数及编码四、计算机
17、中有关数及编码1.1.二进制数的运算法则二进制数的运算法则0+0=0 0+1=1 1+0=1 1+1=00+0=0 0+1=1 1+0=1 1+1=0 0*0=0 0*1=0 1*0=0 1*1=1 0*0=0 0*1=0 1*0=0 1*1=12.2.十进制与二进制、八进制、十六进制数之间的相互转换十进制与二进制、八进制、十六进制数之间的相互转换进制进制基数基数特点特点二进制二进制0,1逢二进一逢二进一八进制八进制0,1,2,3,4,5,6,7逢八进一逢八进一十六进制十六进制0,1,2,.,9,A,B,C,D,E,F逢十六进一逢十六进一(1)数的进制与基数数的进制与基数采用PP管及配件:根据
18、给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物四、计算机中有关数及编码四、计算机中有关数及编码2.2.十进制与二进制、八进制、十六进制数之间的相互转换十进制与二进制、八进制、十六进制数之间的相互转换(2 2)数的权)数的权 不同进制的数,基数不同,每位上代表的值的大小(权)也不相同。不同进制的数,基数不同,每位上代表的值的大小(权)也不相同。 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物四、计算机中有关数及编码四、计算机中有关数及编码2.2
19、.十进制与二进制、八进制、十六进制数之间的相互转换十进制与二进制、八进制、十六进制数之间的相互转换(3)(3)十进制数转换任意进制十进制数转换任意进制 a) a) 将十进制整数除以所定的进制数将十进制整数除以所定的进制数, ,取余逆序。取余逆序。 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物四、计算机中有关数及编码四、计算机中有关数及编码2.2.十进制与二进制、八进制、十六进制数之间的相互转换十进制与二进制、八进制、十六进制数之间的相互转换 b)b)将十进制小数的小数部分乘以进制数取整将十进制小数的小数部
20、分乘以进制数取整, ,作为转换后的作为转换后的小数部分小数部分, ,直到为零或精确到小数点后几位。直到为零或精确到小数点后几位。 (3)(3)十进制数转换任意进制十进制数转换任意进制 a) a) 将十进制整数除以所定的进制数将十进制整数除以所定的进制数, ,取余逆序。取余逆序。 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物四、计算机中有关数及编码四、计算机中有关数及编码2.2.十进制与二进制、八进制、十六进制数之间的相互转换十进制与二进制、八进制、十六进制数之间的相互转换(4)(4)任意进制的数转换十进制
21、任意进制的数转换十进制 按权值展开按权值展开: : 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物一个数在计算机内被表示的二进制形式称为机器数,该数称为一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值。这个机器数的真值。机器数具有下列特点:机器数具有下列特点:(a a)由于计算机设备上的限制和操作上的便利,)由于计算机设备上的限制和操作上的便利,机器数有固定长度机器数有固定长度; 如:一个如:一个8 8位机器数,所能表示的无符号整数的最大值是:位机器数,所能表示的无符号整数的最大值是:
22、 “ “1111111111111111”,即十进制数,即十进制数255255。(b b)机器数把其真值符合数字化;)机器数把其真值符合数字化; 通常是用机器数中规定的符号位(一般是最高位)通常是用机器数中规定的符号位(一般是最高位)取取0 0或或1 1, 来分别表示其真值的来分别表示其真值的正或负正或负。 如:一个如:一个8 8位机器数,其最高位是符号位,那么在定点整数位机器数,其最高位是符号位,那么在定点整数 原码表示情况下,对于原码表示情况下,对于0010111000101110 和和 1001001110010011 其真值分别为十进制:其真值分别为十进制:4646 和和 1919(c
23、 c)机器数中,采用)机器数中,采用定点或浮点定点或浮点方式来表示小数点的位置。方式来表示小数点的位置。四、计算机中有关数及编码四、计算机中有关数及编码采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物3 3、原码、反码和补码、原码、反码和补码机器数的形式是人们规定的,原码和补码是最常见的机器数形式机器数的形式是人们规定的,原码和补码是最常见的机器数形式或称数的编码方式或称数的编码方式。(a a)原码)原码整数整数X的原码是指:其符号位的的原码是指:其符号位的0或或1表示表示X的正或负,其数值部分的正或负,其数
24、值部分就是就是X绝对值的二进制表示。绝对值的二进制表示。通常用通常用X原原表示表示X的原码。的原码。如:假设机器数的位数是如:假设机器数的位数是8,其中最高位是符号位,其余是数值部分,其中最高位是符号位,其余是数值部分,则:则:+17原原0001000139原原10100111注:注:0原原000000000原原10000000零的原码不唯一,有零的原码不唯一,有“正零正零”和和“负零负零”之分。之分。四、计算机中有关数及编码四、计算机中有关数及编码采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(b b)反
25、码)反码在反码表示法中,正数的表示方式与原码相同;在反码表示法中,正数的表示方式与原码相同;负数的补码是把其原码除符号位外的各位取反(即负数的补码是把其原码除符号位外的各位取反(即0变变1,1变变0)。)。通常用通常用X反反表示表示X的反码。的反码。如:如: 4545反反 4545原原0010110100101101 3232原原10100000 10100000 则则 3232反反1101111111011111四、计算机中有关数及编码四、计算机中有关数及编码3 3、原码、反码和补码、原码、反码和补码采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,
26、以保证切口面的圆度,保持熔接部位干净无污物(c c)补码)补码 在进行减法运算时,数的原码表示显得不方便,故引进了数的在进行减法运算时,数的原码表示显得不方便,故引进了数的补码表示。补码表示。正数的补码与其原码相同;正数的补码与其原码相同;负数的补码是在其负数的补码是在其反码的最低有效位上加反码的最低有效位上加1 1。用。用XX补补表示表示X X的补码。的补码。如:如: +14+14补补+14+14原原0000111000001110-36-36原原1010010010100100 而而-36-36反反1 11011011 1011011 则则-36-36补补1101111011100100数
27、数0的补码表示是唯一的,即的补码表示是唯一的,即00补补0原原00000000利用公式利用公式:X补补+Y补补=XY补补可以把加法和减法统一成加法。可以把加法和减法统一成加法。四、计算机中有关数及编码四、计算机中有关数及编码3 3、原码、反码和补码、原码、反码和补码采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物4.4.数的定点和浮点表示数的定点和浮点表示数的补码表示解决了带符号数的运算问题。数的补码表示解决了带符号数的运算问题。至于小数点的处理,计算机中通常用至于小数点的处理,计算机中通常用定点表示法或浮点
28、表示法来解决。定点表示法或浮点表示法来解决。(a)定点表示法)定点表示法定点表示法是把小数点约定在机器数的某一固定的位置上。定点表示法是把小数点约定在机器数的某一固定的位置上。如果小数点约定在符号位和数值的最高位之间,这时所有参加运算如果小数点约定在符号位和数值的最高位之间,这时所有参加运算的数的绝对值小于的数的绝对值小于1,即为,即为定点纯小数。定点纯小数。如:如:X补补01010000,这时这时X0.625如果小数点约定在数值的最低位之后,这时所有参加运算的数都是如果小数点约定在数值的最低位之后,这时所有参加运算的数都是整数,即为整数,即为定点整数。定点整数。如:如:X补补11010000
29、,这时这时X-48四、计算机中有关数及编码四、计算机中有关数及编码采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物由于由于M补补01111111,即即M271127N补补10000000,即即N27128所以所以8位定点整数(补码表示)的范围是位定点整数(补码表示)的范围是12812716位定点整数(补码表示)的范围是位定点整数(补码表示)的范围是3276832767定点数在使用时,所有原始数据事先都要按比例化成纯小数或定点数在使用时,所有原始数据事先都要按比例化成纯小数或整数,运算结果又要按比例转换成实际值
30、。整数,运算结果又要按比例转换成实际值。四、计算机中有关数及编码四、计算机中有关数及编码4.4.数的定点和浮点表示数的定点和浮点表示(a)定点表示法)定点表示法采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(b)浮点表示法)浮点表示法任何一个二进制数任何一个二进制数N,都可写成,都可写成2e*t的形式,即的形式,即N2e*t如:如:1010.11可写成可写成2100*0.101011即即1010.112100*0.101011e称为称为N的阶码,是一个二进制整数,的阶码,是一个二进制整数,t称为称为N的尾数
31、,是一个的尾数,是一个二进制纯小数二进制纯小数机器数用阶码和尾数两部分表示,称为机器数用阶码和尾数两部分表示,称为浮点表示法。浮点表示法。一般规定:一般规定:阶码是定点整数,尾数是定点纯小数。它们可采用原码、阶码是定点整数,尾数是定点纯小数。它们可采用原码、补码或其他编码表示。补码或其他编码表示。四、计算机中有关数及编码四、计算机中有关数及编码4.4.数的定点和浮点表示数的定点和浮点表示采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物如:一个数如:一个数X用用8位机器数浮点表示如下,其中前三位表示阶符位机器数
32、浮点表示如下,其中前三位表示阶符和阶码值,后五位表示尾符和尾数值,它们都用原码表示:和阶码值,后五位表示尾符和尾数值,它们都用原码表示:11001100阶符阶符阶码阶码尾符尾符尾值尾值则则X22*0.11000.0011000.1875浮点表示中,尾数的大小和正负结点了所表示的数的有效数字和正负;浮点表示中,尾数的大小和正负结点了所表示的数的有效数字和正负;阶码的大小和正负决定了小数点的位置;阶码的大小和正负决定了小数点的位置;因此机器数小数点的位置随阶码的变化而浮动。因此机器数小数点的位置随阶码的变化而浮动。为了使运算中不丢失有效数字,提供运算精度,计算机中的浮点表示,为了使运算中不丢失有效
33、数字,提供运算精度,计算机中的浮点表示,通常采用改变阶码来达到规格化数的表示。通常采用改变阶码来达到规格化数的表示。注:规格化要求尾数值的最高位必须是注:规格化要求尾数值的最高位必须是1。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物如:在如:在16位机器浮点表示中,取前六位为阶码(其中第一位为位机器浮点表示中,取前六位为阶码(其中第一位为是阶符),是阶符),后十位为尾数(其中第一位为尾符),它们都用后十位为尾数(其中第一位为尾符),它们都用原码表示,那么它能表示的最大数和最小数分别为:原码表示,那么它能表
34、示的最大数和最小数分别为:0111110111111111即即231(129)约)约2.14329*1090111111111111111即即231(129)约)约2.14329*109可见比相同位数机器数定点表示的范围大得多。可见比相同位数机器数定点表示的范围大得多。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物5 5、ASCIIASCII码和码和BCDBCD码码a、ASCII码码字符或字符的组合、控制功能符号等,在计算机内部,必须用字符或字符的组合、控制功能符号等,在计算机内部,必须用一种二进制代码来表
35、示一种二进制代码来表示。国际上广泛使用的是国际上广泛使用的是: :美国标准信息交换代码美国标准信息交换代码(Amenrican Standand Codefor Information InterechangeAmenrican Standand Codefor Information Interechange)简称:简称:ASCIIASCIIASCII码是码是7位二进制编码,它可以表示位二进制编码,它可以表示27128个字符个字符。四、计算机中有关数及编码四、计算机中有关数及编码采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保
36、持熔接部位干净无污物16进制表示进制表示ASCII码码AZ:415Aaz:617A09:30-39一个字符的一个字符的ASCII码可用二进制表示,也可用八进制、十进制、码可用二进制表示,也可用八进制、十进制、十六进制表示。十六进制表示。四、计算机中有关数及编码四、计算机中有关数及编码5 5、ASCIIASCII码和码和BCDBCD码码a、ASCII码码采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物计算机在进行字符处理和传送时,一般在计算机在进行字符处理和传送时,一般在7位的位的ASCII码左边附加码左边附加
37、一个奇偶校验位,组成一个奇偶校验位,组成8位代码进行存储和传送。位代码进行存储和传送。在偶校验系统中,用附加的偶数校验位使所有字符的在偶校验系统中,用附加的偶数校验位使所有字符的8位代码都有位代码都有偶数个偶数个1。在奇校验系统中用附加的奇数校验位使所有字符的在奇校验系统中用附加的奇数校验位使所有字符的8位代码都有位代码都有奇数个奇数个1。如:如:“R”和和“S”的的ASCII码为:码为:1010010和和1010011则偶校验:则偶校验:11010010和和01010011奇校验:奇校验:01010010和和11010011由于标准的由于标准的7位位ASCII码所表示的字符较少,设计扩充了的
38、码所表示的字符较少,设计扩充了的8位位二进制二进制ASCII码,可表示码,可表示256个字符。个字符。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物b、BCD码码十进制数在键盘输入和打印、显示输出时,往往是将各个数字以十进制数在键盘输入和打印、显示输出时,往往是将各个数字以ASCII码来表示的。但在计算机内运算时,是以二进制进行的。码来表示的。但在计算机内运算时,是以二进制进行的。为了便于转换,人们设计了二进制编码来表示十进制,称为了便于转换,人们设计了二进制编码来表示十进制,称二二-十进制码,即十进制码,
39、即BCD码。码。BCD码是用四位二进制代码来表示一位十进制码。码是用四位二进制代码来表示一位十进制码。从从16个四位二进制代码个四位二进制代码00001111中,只须选择其中的中,只须选择其中的10个个作为十进制数的作为十进制数的10个数字的代码就可以了。个数字的代码就可以了。这样就有多种这样就有多种BCD码码:8421码、码、2421码、余码、余3码、格雷码等。码、格雷码等。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物8421码最常用,它是用四位二进制代码来表示十进制数字,其特点码最常用,它是用四位二进
40、制代码来表示十进制数字,其特点是二进制代码本身的值就是它对应的十进制数字的值。是二进制代码本身的值就是它对应的十进制数字的值。所以所以8421码也称码也称BCD码。码。如:十进制如:十进制315可用可用BCD码表示为码表示为001100010101注:用注:用BCD码表示的数,形式上像二进制数,但不是真正的码表示的数,形式上像二进制数,但不是真正的二进制数。二进制数。(315)10(100111011)2采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物五、逻辑运算五、逻辑运算1.1.逻辑运算逻辑运算 notn
41、ot(逻辑非)(逻辑非) : :你真我假你真我假 andand(逻辑与)(逻辑与) : :同真则真同真则真 oror(逻辑或)(逻辑或) : :有真就真有真就真 xorxor( (逻辑异或逻辑异或) ) : :不同则真不同则真 如果如果x、y是两个布尔型变量,下面列出了是两个布尔型变量,下面列出了4种运算的结果:种运算的结果:f:falset:truexynotxxandyxoryxxoryfftffffttftttfffttttfttf采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物五、逻辑运算五、逻辑运算
42、运算顺序为运算顺序为(1 1)括号)括号 (2 2)函数)函数 (3 3)not not (4 4)* / div mod and* / div mod and(5 5) or xor or xor (6 6)关系运算符()关系运算符(,=,= ,=,= )采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物五、逻辑运算五、逻辑运算2.2.按位运算按位运算 按位与按位与:同同1 1则则1 1 如如1001010110110111=10010101 1001010110110111=10010101 按位或按位或:
43、 :有有1 1则则1 1 如如1001010110110111=101101111001010110110111=10110111 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物六、网络基础知识六、网络基础知识互联网的基本使用常识(网上的浏览、搜索和查询等)互联网的基本使用常识(网上的浏览、搜索和查询等) 采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物七、数据结构七、数据结构数据结构是相互之间存在一种或多种特定关系的数据
44、元素的数据结构是相互之间存在一种或多种特定关系的数据元素的集合,数据之间的关系称之为结构。集合,数据之间的关系称之为结构。四种基本的数据结构:四种基本的数据结构:集合:集合:数据元素间除了数据元素间除了“同属于一个集合同属于一个集合”外,无其他关系。外,无其他关系。线性结构线性结构:一个对一个,如线性表、数组、栈、队列。:一个对一个,如线性表、数组、栈、队列。树形结构树形结构:一个对多个,如树。:一个对多个,如树。图形结构图形结构:多个对多个,如图。:多个对多个,如图。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干
45、净无污物七、数据结构七、数据结构1.集合集合(1)集合的概念某些具有共性又有个性的对象汇集在一起构成的整体。如:大于10小于50的奇数;26个小写英文字母。(2)元素与集合的关系 51,2,3,4,5(3)几种重要的集合空集:没有任何成员的集合称为空集,记为:幂集:一个集合的所有子集组成的集合,如1,2,3的幂集合为:、1、2、3、1,2、1,3、2,3、1,2,3采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物七、数据结构七、数据结构1.集合集合(4 4)集合运算)集合运算并并:集集A A和集和集B B所有
46、的成员合并起来组成新的集合;所有的成员合并起来组成新的集合;交交:集集A A和集和集B B共有的成员组成新的集合;共有的成员组成新的集合;差:差:集集A A的成员去掉和集的成员去掉和集B B中也包含的成员组成新的集合;中也包含的成员组成新的集合;(如:全集(如:全集1 1,2 2,3 3,4 4,5 5,其中子集其中子集A A1 1,2 2,B B2 2,3 3则则 AB=1,2,3; AB=1,2,3; AB=2; AB=2; A-B=1; A-B=1;采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物八、简
47、单算法八、简单算法2.数组数组(1 1)一维数组的存储)一维数组的存储 由于数组中所有元素属于同一类型,所以每个元素在存储由于数组中所有元素属于同一类型,所以每个元素在存储 器中占用的空间大小相同。器中占用的空间大小相同。假设数组的第一个元素存放的位置为假设数组的第一个元素存放的位置为LOC(k1)LOC(k1),每个元素,每个元素 占用的空间大小为占用的空间大小为S S,则,则kiki的存放位置为:的存放位置为:LOC(ki)=LOC(k1)+S*(i-1) LOC(ki)=LOC(k1)+S*(i-1) 例:一个向量第一个元素的存储地址是例:一个向量第一个元素的存储地址是100,100,每
48、个元素的长度是每个元素的长度是2,2,则第则第5 5个元素的地址是个元素的地址是( ( ) ) 。A)110A)110 B)108 B)108 C) 100 C) 100 D) 109 D) 1091002*(5-1)108采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物储存元素的规律通常有储存元素的规律通常有“行优先行优先”和和“列优先列优先”。A32 = a11 a12 a13A32 = a11 a12 a13a21 a22 a23a21 a22 a23a31 a32 a33a31 a32 a33按按“行
49、优先行优先”的顺序:的顺序:a11 a12 a13 a21 a22 a23 a31 a32 a33a11 a12 a13 a21 a22 a23 a31 a32 a33按按“列优先列优先”的顺序:的顺序:a11 a21 a31 a12 a22 a32 a13 a23 a33a11 a21 a31 a12 a22 a32 a13 a23 a33将二维数组将二维数组Amn按按“行优先行优先”顺序储存在内存以后,元素顺序储存在内存以后,元素aij的的地址计算函数为:地址计算函数为:LOC(aij)=LOC(a11)+(i-1)*n+(j-1)按按“列优先列优先”顺序储存在内存以后,元素顺序储存在内存
50、以后,元素aij的地址计算数为:的地址计算数为:LOC(aij)=LOC(a11)+(j-1)*m+(i-1)七、数据结构七、数据结构2.数组数组(2 2)二维数组)二维数组采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物例例1 1:已知数组中:已知数组中A A中,每个元素中,每个元素A A(I I,J J)在存贮时要占)在存贮时要占3 3个字节,个字节,设设I I从从1 1变化到变化到8 8,J J从从1 1变化到变化到1010,分配内,分配内存时是从地址存时是从地址SASA开始连续开始连续按行存贮分配按行
51、存贮分配的。的。试问:试问:A A(5 5,8 8)的起始地址为()的起始地址为()A.SA+141A.SA+141B. SA+180B. SA+180C. SA+222C. SA+222D. SA+225D. SA+225例例2 2:设数组:设数组A10.100A10.100,20.10020.100以以行优先行优先的方式顺序存贮,的方式顺序存贮,每个元素占每个元素占4 4个字节,且已知个字节,且已知A10A10,2020的地址为的地址为10001000,则,则A50A50,9090的地址是的地址是_。1000+(50-10)*1000+(50-10)*8181+(90-20)*4=1424
52、0+(90-20)*4=14240SA+(5-1)*10+(8-1)*3SA+(5-1)*10+(8-1)*3SA+141SA+141采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物七、数据结构七、数据结构(1)栈的特点:)栈的特点:栈是一种线性表,对于它所有的插入和删除都限制在表的栈是一种线性表,对于它所有的插入和删除都限制在表的同一端进行,这一端叫做栈的同一端进行,这一端叫做栈的“顶顶”,另一端则叫做栈的,另一端则叫做栈的“底底”,其操作特点是,其操作特点是“后进先出后进先出”。3.栈栈(2 2)栈的基本
53、运算:)栈的基本运算:栈的插入栈的插入栈的弹出栈的弹出读栈顶元素读栈顶元素判栈是否为空判栈是否为空采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(3 3)栈的应用:)栈的应用:计算表达式的值计算表达式的值(a)(a)表达式的三种形式:表达式的三种形式:中缀表达式:中缀表达式:运算符放在两个运算对象中间,如:运算符放在两个运算对象中间,如:(2+1)*3;后缀表达式:后缀表达式:不包含括号,运算符放在两个运算对象的后面,不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(
54、不再考虑所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:运算符的优先规则,如:21+3*;前缀表达式:前缀表达式:同后缀表达式一样,不包含括号,运算符放在两同后缀表达式一样,不包含括号,运算符放在两个运算对象的前面,如:个运算对象的前面,如:*+213。(b)表达式的计算:表达式的计算:由于后缀表达式中没有括号,不需判别优先级,计算严格从左由于后缀表达式中没有括号,不需判别优先级,计算严格从左向右进行,故计算一个后缀表达式要比计算机一个中缀表达式简单向右进行,故计算一个后缀表达式要比计算机一个中缀表达式简单得多。得多。采用PP管及配件:根据给水设计图配置好PP管及
55、配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物例例1 1:以下哪一个不是栈的基本运算:以下哪一个不是栈的基本运算( )( )A)A)删除栈顶元素删除栈顶元素 B)B)删除栈底的元素删除栈底的元素 C)C)判断栈是否为空判断栈是否为空 D) D)将栈置为空栈将栈置为空栈B例例2 2、若已知一个栈的入栈顺序是、若已知一个栈的入栈顺序是1 1,2 2,3 3,n n,其输出序列为,其输出序列为P1P1,P2P2,P3P3,PnPn,若,若P1P1是是n n,则,则PiPi是是( )( )A)i A)i B)n-1 B)n-1 C)n-i+1 C)n-i+1
56、D)D)不确定不确定C采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物七、数据结构七、数据结构4.队列队列(a)(a)队列的特点:队列的特点:队列也是一种线性表,对于它所有的插入都在队列的一端进行,所队列也是一种线性表,对于它所有的插入都在队列的一端进行,所有的删除都在另一端进行,进行删除的一端叫队列的有的删除都在另一端进行,进行删除的一端叫队列的“头头”,进行,进行插入的一端叫队列的插入的一端叫队列的“尾尾”,其操作特点是,其操作特点是“先进先出先进先出”。(b)(b)队列的基本操作队列的基本操作队列的插入
57、队列的插入队列的删除队列的删除读队头元素读队头元素判队列是否为空判队列是否为空采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物例例1 1、设栈、设栈S S和队列和队列Q Q的初始状态为空的初始状态为空, ,元素元素e1,e2,e3,e4,e5,e6e1,e2,e3,e4,e5,e6依依次通过栈次通过栈S,S,一个元素出栈后即进入队列一个元素出栈后即进入队列Q,Q,若出队的顺序为若出队的顺序为e2,e4,e3,e6,e5,e1,e2,e4,e3,e6,e5,e1,则栈则栈S S的容量至少应该为的容量至少应该为(
58、 ( ) ) 。A) 2A) 2 B) 3 B) 3 C) 4 C) 4 D) 5 D) 5B例例2 2、下列叙述中,正确的是()、下列叙述中,正确的是()A.A.线性表的线性存贮结构优于链表存贮结构线性表的线性存贮结构优于链表存贮结构B.B.队列的操作方式是先进后出队列的操作方式是先进后出C.C.栈的操作方式是先进先出栈的操作方式是先进先出D. D. 二维数组是指它的每个数据元素为一个线性表的线性表二维数组是指它的每个数据元素为一个线性表的线性表D采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(一)树的基
59、本术语(一)树的基本术语(1 1)树的度树的度也即是宽度,以组也即是宽度,以组成该树各结点中最大的度作为该树成该树各结点中最大的度作为该树的度,如右图的树,其度为的度,如右图的树,其度为3;3;(2)树的深度树的深度以组成该树各结点的最大层次,以组成该树各结点的最大层次,如上图,其深度为如上图,其深度为4;(3)森林森林指若干棵互不相交的树的集合,如上图,去掉根结指若干棵互不相交的树的集合,如上图,去掉根结点点A,其原来的子树,其原来的子树T1、T2、T3的集合的集合T1,T2,T3就为森林;就为森林;(4)有序树有序树指树中同层结点从左到右有次序排列,它们之指树中同层结点从左到右有次序排列,
60、它们之间的次序不能互换,这样的树称为有序树,否则称为无序树。间的次序不能互换,这样的树称为有序树,否则称为无序树。七、数据结构七、数据结构5.5.树树采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(二)树的表示树的表示方法有许多,树的表示方法有许多,常用的方法是用括号:常用的方法是用括号:先将根结点放入一对圆括号中,先将根结点放入一对圆括号中,然后把它的子树由左至右的然后把它的子树由左至右的顺序放入括号中,而对子树顺序放入括号中,而对子树也采用同样的方法处理;也采用同样的方法处理;同层子树与它的根结点用圆括
61、号括起来,同层子树之间用逗同层子树与它的根结点用圆括号括起来,同层子树之间用逗号隔开,最后用闭括号括起来。号隔开,最后用闭括号括起来。如上图可写成如下形式:如上图可写成如下形式:(A(B(E(K,L),F),C(G),D(H(M),I,J)采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(三)二叉树(三)二叉树(1 1)二叉树的基本形态)二叉树的基本形态二叉树也是递归定义的,其结点有左右子树之分,二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态:逻辑上二叉树有五种基本形态:(1)(1)空
62、二叉树空二叉树(a)(a);(2)(2)只有一个根结点的二叉树只有一个根结点的二叉树(b)(b);(3)(3)右子树为空的二叉树右子树为空的二叉树(c)(c);(4)(4)左子树为空的二叉树左子树为空的二叉树(d)(d);(5)(5)完全二叉树完全二叉树(e)(e)采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(2 2)两个重要的概念:)两个重要的概念:(a)(a)完全二叉树完全二叉树只有最下面的两层结点度小于只有最下面的两层结点度小于2 2,并且最下,并且最下面一层的结点都集中在该层最左边的若干位置的二叉
63、树;面一层的结点都集中在该层最左边的若干位置的二叉树;(b)(b)满二叉树满二叉树除了叶结点外,每一个结点都有左右子女的二叉树。除了叶结点外,每一个结点都有左右子女的二叉树。(三)二叉树(三)二叉树采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(3)(3)二叉树的性质二叉树的性质(a)(a)在二叉树中,在二叉树中,第第i i层的结点总数层的结点总数不超过不超过2(i-1)2(i-1);(c)对于任意一棵二叉树,如果其叶结点数为对于任意一棵二叉树,如果其叶结点数为N0,而度数为,而度数为2的结点总数为的结点总
64、数为N2,则,则N0=N2+1;(d)具有具有n个结点的完全二叉树的深度为个结点的完全二叉树的深度为lon2n+1.(b)(b)深度为深度为k k的二叉树至多有的二叉树至多有2k-12k-1个结点。(个结点。(k=1)k=1)(三)二叉树(三)二叉树采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(4)(4)二叉树的存储结构二叉树的存储结构(1)(1)顺序存储方式顺序存储方式(2)链表存储方式,如:链表存储方式,如:数组下标:数组下标:12345678数组数组D:ABCDEFGH左指针数组左指针数组L:246
65、07000右指针数组右指针数组R:35000800(三)二叉树(三)二叉树采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(5)(5)普通树转换成二叉树:普通树转换成二叉树:凡是兄弟就用线连起来,然后去掉父亲到儿子的连线,只留凡是兄弟就用线连起来,然后去掉父亲到儿子的连线,只留下父母到其第一个子女的连线。下父母到其第一个子女的连线。(三)二叉树(三)二叉树采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(6)(6)二叉树的遍
66、历运算(递归定义)二叉树的遍历运算(递归定义)(a)(a)先序遍历先序遍历访问根;按先序遍历左子树;按先序遍历右子树访问根;按先序遍历左子树;按先序遍历右子树(b)(b)中序遍历中序遍历按中序遍历左子树;访问根;按中序遍历右子树按中序遍历左子树;访问根;按中序遍历右子树 (c)(c)后序遍历后序遍历按后序遍历左子树;按后序遍历右子树;访问根按后序遍历左子树;按后序遍历右子树;访问根*/+abcdef中序:中序:a+(b-c)*d-e/f先序:先序:-*+abcd/ef后序:后序:abc-+d*ef/-(三)二叉树(三)二叉树采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角
67、切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(7 7)哈夫曼树)哈夫曼树哈夫曼树,哈夫曼树,又称最优树,是一类带权路径长度最短的树。又称最优树,是一类带权路径长度最短的树。从树中的一个结点到另一个结点之间的分支构成这两个结点之间从树中的一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上的分支数目称为的路径,路径上的分支数目称为路径长度路径长度,而整棵树的路径长度,而整棵树的路径长度则是从树根到每一个结点的路径长度之和。则是从树根到每一个结点的路径长度之和。结点的带权路径长度就是从该结点到树根之间的路径长度与结点结点的带权路径长度就是从该结点到树根之间的路径长度与
68、结点上权的乘积,则树的带权路径长度就是树中所有叶子结点的带权上权的乘积,则树的带权路径长度就是树中所有叶子结点的带权路径长度之和,记为路径长度之和,记为WPL.WPL.(三)二叉树(三)二叉树采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物例例2 2、一棵二叉树的高度为、一棵二叉树的高度为h h,所有结点的度为,所有结点的度为0 0,或为,或为2 2,则,则 此树最少有此树最少有( )( )个结点。个结点。 A)2 A)2h h-1 -1 B)2h-1 B)2h-1 C)2h+1 C)2h+1 D)h+1D)
69、h+1B例例1 1、按照二叉树的定义,具有、按照二叉树的定义,具有3 3个结点的二叉树有(个结点的二叉树有( )种。)种。 A) 3 B) 4 C) 5 D) 6C例例3 3、已知一棵二叉树的结点名为大写英文字母,其中序与后、已知一棵二叉树的结点名为大写英文字母,其中序与后序遍历的顺序分别为:序遍历的顺序分别为:CBGEAFHDIJCBGEAFHDIJ与与CGEBHFJIDACGEBHFJIDA则该二叉树则该二叉树的先序遍历的顺序为:的先序遍历的顺序为:ABCEGDFHIJABCEGDFHIJ采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口
70、面的圆度,保持熔接部位干净无污物例例4 4、已知,按中序遍历二叉树的结果为:、已知,按中序遍历二叉树的结果为:abcabc 问:有多少种不同形态的二叉树可以得到这一遍问:有多少种不同形态的二叉树可以得到这一遍历结果,并画出这些二叉树。历结果,并画出这些二叉树。 有有 5 5 种种 a b a c c a b a c c / / / / / / b a c c a b b a c c a b / / / / c b b a c b b a采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物定义:图是由定义:图是由顶
71、点集顶点集V和边集和边集E组成,一般把图组成,一般把图G记为记为G(V,E)。)。6.6.图图 图中结点之间的关系完全是任意的,即图中任意两个图中结点之间的关系完全是任意的,即图中任意两个数据元素之间都可能有关系,数据元素之间都可能有关系,“多对多多对多”的数据结构。的数据结构。七、数据结构七、数据结构(一)图的概念(一)图的概念采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物v1v2v3v4顶点顶点(a)有向图)有向图弧弧弧头弧头弧尾弧尾v1v2v5v4v3(b)无向图)无向图边边G1=(V1,E1)V1=
72、v1,v2,v3,v4E1=,G2=(V2,E2)V2=v1,v2,v3,v4,v5E2=, , ,采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物在无向图中,与顶点依附的边的条数称为该顶点的在无向图中,与顶点依附的边的条数称为该顶点的度度。在有向图中,从某顶点出发的弧的数目称为该顶点的在有向图中,从某顶点出发的弧的数目称为该顶点的出度出度;而达到某顶点的有向弧的数目称为该顶点的而达到某顶点的有向弧的数目称为该顶点的入度入度用用n表示图中顶点的数目,用表示图中顶点的数目,用e表示边或弧的数目,则:表示边或弧的
73、数目,则:对于无向图,对于无向图,e的取值范围是:的取值范围是:0到到n(n1)/2,有有n(n1)/2条边的无向图称为条边的无向图称为完全图完全图(即任意两顶点间都有(即任意两顶点间都有1条边);条边);对于有向图,对于有向图,e的取值范围是:的取值范围是:0到到n(n1),),有有n(n1)条边的有向图称为)条边的有向图称为有向完全图有向完全图(即任意两顶点间都有(即任意两顶点间都有2条边)。条边)。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物从一顶点沿图中顶点边(或弧)能够到达另一顶点,则称两顶点间
74、从一顶点沿图中顶点边(或弧)能够到达另一顶点,则称两顶点间存在一条存在一条路径路径,即路径是两顶点间经过的顶点序列。,即路径是两顶点间经过的顶点序列。顶点序列中顶点不重复出现的路径称为顶点序列中顶点不重复出现的路径称为简单路径;简单路径;第一个顶点到最后一个顶点相同的路径称为第一个顶点到最后一个顶点相同的路径称为回路或环;回路或环;在无向图中,如果顶点在无向图中,如果顶点v和和w之间存在一条路径,之间存在一条路径,则称顶点则称顶点v和顶点和顶点w是是连通的;连通的;若图中任意两个顶点都存在路径,若图中任意两个顶点都存在路径,则称该则称该无向图无向图G是连通的是连通的。而连通分量指的是图中的极大
75、连通子图。而连通分量指的是图中的极大连通子图。在有向图中,对于任意的两个顶点在有向图中,对于任意的两个顶点v和和w,、若从,、若从v到到w和从和从w到到v之间均存在路径,则图之间均存在路径,则图G为为强连通图。强连通图。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(二)图的存储结构(二)图的存储结构(1 1)邻接矩阵)邻接矩阵设设G=(V,E)G=(V,E)是有是有n(n=1)n(n=1)个顶点的图邻接矩阵定义如下:个顶点的图邻接矩阵定义如下:无向图的邻接矩阵是对称的,可以用下(上)三角存储,无向图的邻接
76、矩阵是对称的,可以用下(上)三角存储,空间需空间需n n(n+1n+1)/2/2有向图则不一定对称,空间需有向图则不一定对称,空间需n n2 2图图的存储方式有两种:顺序存储的数组表示法(连接矩阵)和的存储方式有两种:顺序存储的数组表示法(连接矩阵)和 链式存储的邻接表、十字链表等。链式存储的邻接表、十字链表等。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物v1v2v3v4顶点顶点(a)有向图)有向图弧弧弧头弧头弧尾弧尾v1v2v5v4v3(b)无向图)无向图边边1234101102000030001410
77、0012345101010210101301011410100501100采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(2 2)邻接表)邻接表邻接表是图的一种链式结构。邻接表是图的一种链式结构。在邻接表中,对图中每个顶点建立一个单链表,在邻接表中,对图中每个顶点建立一个单链表,第第i i个单链表中的结点表示依附于顶点个单链表中的结点表示依附于顶点vivi的边(或弧)。的边(或弧)。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干
78、净无污物v1v2v3v4顶点顶点(a)有向图)有向图弧弧弧头弧头弧尾弧尾v1v2v5v4v3(b)无向图)无向图边边43211423头结点头结点54321223421 345135采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物(三)图的遍历图的遍历与树的遍历类似,即寻找某一策略使图的遍历与树的遍历类似,即寻找某一策略使得从某一顶点出发,沿着某一线路能够访问图中的得从某一顶点出发,沿着某一线路能够访问图中的所有顶点一次且仅访问一次。所有顶点一次且仅访问一次。图的遍历方式有两种:图的遍历方式有两种:深度优先和广
79、度优先。深度优先和广度优先。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物1 1、深度优先:、深度优先: 尽可能尽可能“深深”的搜索图形,即对于新发现的顶点,如果它还有的搜索图形,即对于新发现的顶点,如果它还有以此为起点而未访问的边,就沿此边继续访问下去。以此为起点而未访问的边,就沿此边继续访问下去。当顶点当顶点V V的所有边都已被访问过,则从最后被访问的顶点开始,的所有边都已被访问过,则从最后被访问的顶点开始,依次返回新近被访问过,则从最后被访问的顶点开始,依次返回新依次返回新近被访问过,则从最后被访问的
80、顶点开始,依次返回新近被访问的且尚有邻接顶点未被访问过的顶点,再从该顶点重复上近被访问的且尚有邻接顶点未被访问过的顶点,再从该顶点重复上述搜索过程。述搜索过程。由于深度优先搜索可以由多个初始顶点开始重复进行,因此可能由于深度优先搜索可以由多个初始顶点开始重复进行,因此可能产生一个有数棵深度优先树组成的森林。产生一个有数棵深度优先树组成的森林。采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2 2、广度优先、广度优先从顶点从顶点v0v0出发,先访问出发,先访问v0v0,然后访问所有与,然后访问所有与v0v0邻邻
81、接的顶点接的顶点v1v1,v2,vtv2,vt,再依次访问与,再依次访问与v1v2,vtv1v2,vt相邻相邻接的所有未曾访问的顶点,如此循环进行下去,直至接的所有未曾访问的顶点,如此循环进行下去,直至图中的所有顶点均被访问完成为止。图中的所有顶点均被访问完成为止。广度搜索:广度搜索:A-B-E-C-D-F-GA-B-E-C-D-F-GABCDEFG深度搜索:深度搜索:A-B-C-D-G-F-E采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物2 2、无向图、无向图G=(VG=(V,E)E),其中,其中V=a,
82、b,c,d,e,f V=a,b,c,d,e,f E=(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d) E=(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)对该图进行深度优先遍历对该图进行深度优先遍历, ,得到的顶点序列正确的是得到的顶点序列正确的是( )( ) A)a,b,e,c,d,f A)a,b,e,c,d,fB)a,c,f,e,b,dB)a,c,f,e,b,dC)a,e,b,c,f,dC)a,e,b,c,f,dD)a,b,e,d,f,cD)a,b,e,d,f,c1 1、在一个有向图中,所有顶点的入度之和、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的(等于所有顶点的出度之和的( )倍。)倍。 A)1/2A)1/2B)1B)1C)2C)2D)4D)4BD采用PP管及配件:根据给水设计图配置好PP管及配件,用管件在管材垂直角切断管材,边剪边旋转,以保证切口面的圆度,保持熔接部位干净无污物3 3、用邻接矩阵表示下面的无向图、用邻接矩阵表示下面的无向图 123456710100000210110003010110040110111500110016000010170001110