离散数学课件总复习之习题讲解.ppt
《离散数学课件总复习之习题讲解.ppt》由会员分享,可在线阅读,更多相关《离散数学课件总复习之习题讲解.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构数据结构重点题型与课后题讲解重点题型与课后题讲解20122012年秋季年秋季年秋季年秋季各内容重点题型讲解各内容重点题型讲解作业中易错题讲解作业中易错题讲解课后练习讲解课后练习讲解各内容重点题型讲解各内容重点题型讲解内内内内 容容容容比比比比 例例例例示例例题示例例题示例例题示例例题线性表线性表线性表线性表 15%15%P862.22P862.22栈和队列栈和队列栈和队列栈和队列15%15%P1333.22P1333.22数组、矩阵和串数组、矩阵和串数组、矩阵和串数组、矩阵和串1010%P1854.13P1854.13二叉树、堆、二叉树、堆、二叉树、堆、二叉树、堆、HuffmanHuf
2、fman 20%20%P2485.18P2485.18、5.205.20散列散列散列散列 10%10%P2956.9P2956.9图图图图110%0%P3938.10P3938.10、P3958.24P3958.24搜索结构搜索结构搜索结构搜索结构 20%20%P3437.15P3437.15排序排序排序排序P4409.2P4409.2P862.22设设在在一一个个带带附附加加头头结结点点的的单单链链表表中中所所有有元元素素结结点点的的数数据据值值按按递递增增顺顺序序排排列,试编写一个函数,列,试编写一个函数,删除表中所有大于删除表中所有大于min,小于,小于max的元素的元素(若存在)。(若
3、存在)。an-1a1firstpq温习:温习:(1)带附加结点的单链表的结构)带附加结点的单链表的结构(2)单链表的删除)单链表的删除 q=p-link;p-link=q-link;deleteq;参考解析:参考解析:templatevoidrangeDelete(List&L,Tmin,Tmax)LinkNode*ptr=L.First(),*p=ptr-link;while(p!=NULL&p-datalink;while(p!=NULL&p-datalink=p-link;deletep;p=ptr-link;P1333.22假假设设以以数数组组Qm存存放放循循环环队队列列中中的的元元素
4、素,同同时时以以rear和和length分分别别指指示示循循环环队队列列中中的的队队尾尾位位置置和和队队列列中中所所含含元元素素的的个个数数。试试给给出出该该循循环环队队列列的的对对空空条条件件和和队队满满条条件件,并并写写出出相相应应的的插插入入(EnQueue)和和删删除除(DlQueue)元元素素的操作。的操作。温习:温习:(1)循环队列结构)循环队列结构01234567frontABCrear(3)循环队列插入)循环队列插入(4)循环队列删除)循环队列删除存入存放循环队列元素的数组存入存放循环队列元素的数组elementsrear=x;尾指针加一尾指针加一rear=(rear+1)%m
5、axSize;取队头元素取队头元素x=elementsfront;队头指针加一队头指针加一front=(front+1)%maxSize;(2)循环队列对空条件与队满条件)循环队列对空条件与队满条件队空条件:队空条件:front=rear;队满条件:队满条件:(rear+1)%maxSize=front;参考解析:参考解析:#include#include“Queue.h”templateclassSeqQueue:publicQueue/循环队列的类定义循环队列的类定义protected:intrear,length;/队尾指针与队列长度队尾指针与队列长度T*elements;/队列存放数组
6、队列存放数组intmaxSize;/队列最大容量队列最大容量public:SeqQueue(intsize=100);/构造函数构造函数SeqQueue()deleteelements;/析构函数析构函数boolEnQueue(Tx);/新元素进队列新元素进队列boolDeQueue(T&x);/退出队头元素退出队头元素voidmakeEmpty()length=0;/置空队列置空队列boolIsEmpty()constreturnlength=0;/判队列是否为空判队列是否为空boolIsFull()constreturnlength=maxSize;/判队列是否满判队列是否满;templa
7、teSeqQueue:SeqQueue(intsize):rear(0),length(0),maxSize(size)/构造函数:建立一个最大具有构造函数:建立一个最大具有maxSize个元素的空队列个元素的空队列elements=newTsize;assert(elements!=NULL);templateboolSeqQueue:EnQueue(Tx)/若队列不满若队列不满,则将则将x插入到该队列队尾插入到该队列队尾,否则返回否则返回falseif(IsFull()=true)returnfalse;/判队列是否已满,满则返回判队列是否已满,满则返回falseelementsrear=
8、x;/先存入先存入rear=(rear+1)%maxSize;/尾指针加一尾指针加一length+;/队列长度加队列长度加1returntrue;templateboolSeqQueue:DeQueue(T&x)/若队列不空则函数退队头元素并返回其值若队列不空则函数退队头元素并返回其值if(IsEmpty()=true)returnfalse;/判队列是否为空,空则返回判队列是否为空,空则返回falsex=elements(rear-length+maxSize)%maxSize;/取原队头元素值取原队头元素值length-;/队列长度减队列长度减1returntrue;P1854.13所所谓
9、谓回回文文,是是指指从从前前向向后后顺顺读读和和从从后后向向前前倒倒读读都都一一样样的的不不含含空空白白字字符符的的串串。例例如如did,madamimadam,pop即即是是回回文文。试试编编写写一一个个算算法法,以以判判断断一一个串是否是回文。个串是否是回文。解法一(基于字符串的顺序存储)解法一(基于字符串的顺序存储)算法思想:从数组两头向中间并进,检查对应字符是否相等,直到中间会合。算法思想:从数组两头向中间并进,检查对应字符是否相等,直到中间会合。#includeAstring.hboolpalindrome(AString&S)inti=0,j=S.Length()-1;while(
10、ij)if(Si!=Sj)returnfalse;elsei+,j+;returntrue;解法二(基于字符串的单链表存储结构)解法二(基于字符串的单链表存储结构)算算法法思思想想:利利用用栈栈。先先把把字字符符串串所所有有元元素素进进栈栈,再再逐逐个个退退栈栈与与从从头头遍遍历历链链表表同时进行,都相等说明是回文。同时进行,都相等说明是回文。#includeLinkedStack.hboolpalindrome(AString&S)LinkedStackSLS;charch;linkNode*p=S.First()-link;while(p!=NULL)/把字符串所有元素进栈把字符串所有元素
11、进栈SLS.Push(p-data);p=p-link;p=S.First()-link;while(!SLS.isEmpty()/退掉位于栈顶的元素,同时遍历链表与从栈退出来的元素进行比较退掉位于栈顶的元素,同时遍历链表与从栈退出来的元素进行比较SLS.Pop(ch);if(ch!=p-data)returnfalse;elsep=p-link;returntrue;P2485.18已已知知一一棵棵二二叉叉树树的的前前序序遍遍历历的的结结果果是是ABECDFGHIJ,中中序序遍遍历历的的结结果果是是EBCDAFHIGJ,试画出这颗二叉树。,试画出这颗二叉树。温习:温习:前序遍历:根左右前序遍
12、历:根左右中序遍历:左根右中序遍历:左根右后序遍历:左右根后序遍历:左右根前前序序参考解析:参考解析:C CB BE EA AD DF FGGHHI IJ J中中序序D DB BC CE EA AF FHHI IGGJ JD DB BC CE EF F HHI IGGJ JD DC CHHI IGGJ JHHI IABFCeEGD HJIP2485.20假假定定用用于于通通信信的的电电文文仅仅由由8个个字字母母c1,c2,c3,c4,c5,c6,c7,c8组组成成,各各字字母母在在电电文文中中出出现现的的频频率率分分别别为为5,25,3,6,10,11,36,4。试试为为这这8个个字字母母设设
13、计计不不等等长长Huffman编码,并给出该电文的总码数。编码,并给出该电文的总码数。温习:温习:Huffman树:树:WPL最小最小的二叉树,也是的二叉树,也是权值大的外结点离根结点最近权值大的外结点离根结点最近的扩充二叉树。的扩充二叉树。参考解析:参考解析:思路:每个结点看做一棵树,找权值最小的两棵树合为一棵树。思路:每个结点看做一棵树,找权值最小的两棵树合为一棵树。6 625253 35 51010111136364 4c1c2c3c4c5c6c7c86 625253 35 51010111136364 4c1c2c3c4c5c6c7c87 76 625253 35 5101011113
14、6364 4c1c2c3c4c5c6c7c87 711116 625253 35 51010111136364 4c1c2c3c4c5c6c7c87 7111117176 625253 35 51010111136364 4c1c2c3c4c5c6c7c87 71111171722226 625253 35 51010111136364 4c1c2c3c4c5c6c7c87 711111717222239396 625253 35 51010111136364 4c1c2c3c4c5c6c7c87 7111117172222393961616 625253 35 51010111136364
15、4c1c2c3c4c5c6c7c87 71111171722223939616110010000000001111111c1c2c3c4c5c6c7c81000001110 1001110101011111电文总码数:电文总码数:45225434631031123644257P2956.9设设散散列列表表为为HT13,散散列列函函数数H(key)=key%13,用用闭闭散散列列法法解解决决冲冲突突,对下列关键码序列对下列关键码序列12,23,45,57,20,03,78,31,15,36造表。造表。(1)采采用用线线性性探探查查法法寻寻找找下下一一个个空空位位,画画出出相相应应的的散散列列表表
16、,并并计计算算等等概概率率下搜索成功的平均搜索长度和搜索不成功的平均搜索长度。下搜索成功的平均搜索长度和搜索不成功的平均搜索长度。(2)采采用用双双散散列列法法寻寻找找下下一一个个空空位位,再再散散列列函函数数RH(key)=(7*key)%10+1,寻寻找找下下一一个个空空位位的的公公式式为为Hi(Hi-1RH(key))%13,H1=H(key)。画画出出相相应的散列表,并计算等概率下搜索成功的平均搜索长度。应的散列表,并计算等概率下搜索成功的平均搜索长度。温习:温习:HHi i(k k)=(HH0 0(k k)+d+di i)modmmodm(i=1,2,.ki=1,2,.k(km-1k
17、m-1)其中,每次再探测时的地址增量其中,每次再探测时的地址增量其中,每次再探测时的地址增量其中,每次再探测时的地址增量d d d di i i i可以有不同的取值:可以有不同的取值:可以有不同的取值:可以有不同的取值:(1 1 1 1)d d d di i i i=1=1=1=1,2 2 2 2,3 3 3 3,.;线性探测法线性探测法线性探测法线性探测法(2 2 2 2)d d d di i i i=1=1=1=12,-1-1-1-12,2 2 2 22,-2-2-2-22.;二次探测法二次探测法二次探测法二次探测法(3 3 3 3)d d d di i i i=伪随机序列;伪随机序列;伪
18、随机序列;伪随机序列;伪随机再散列伪随机再散列伪随机再散列伪随机再散列 如:双散列法如:双散列法如:双散列法如:双散列法 H Hi i(H H0 0ReHash(key)ReHash(key))%m%m参考解析:参考解析:(1)线性探查法()线性探查法(设设HH11=H(key)若发生冲突,则调用 Hi(k)=(H1(k)+di)%13(di=1,2,)由散列函数由散列函数H(key)=key%13可得可得:HH11(12)=12%13=12HH11(23)=23%13=10HH11(45)=45%13=6HH11(57)=57%13=5HH11(20)=20%13=7HH11(03)=3%1
19、3=3HH11(78)=78%13=0HH11(31)=31%13=5(发生冲突)(发生冲突)HH22(31)=(5+1)%13=6(发生冲突)(发生冲突)HH33(31)=(6+1)%13=7(发生冲突)(发生冲突)HH44(31)=(7+1)%13=8(成功)(成功)H1 1(15)=15%13=2H1 1(36)=36%13=10(发生冲突)(发生冲突)HH22(36)=(10+1)%13=11(成功)(成功)0 04 48 8121245451212787836362020 3131030315151 12 23 35 56 67 79 9 1010 111123235757ASLAS
20、L成功成功成功成功=(1+1+1+1+1+1+1+4+1+2)/10=14/10ASLASL不成功不成功不成功不成功=(2+1+3+2+1+5+4+3+2+1+5+4+3)/13=36/13(2)双散列法()双散列法(设设HH11=H(key)若发生冲突,则调用 Hi(k)=(Hi-1(k)+RH(key))%13,RH(key)=(7*key)%10+1由散列函数由散列函数H(key)=key%13可得可得:HH11(12)=12%13=12HH11(23)=23%13=10HH11(45)=45%13=6HH11(57)=57%13=5HH11(20)=20%13=7HH11(03)=3%
21、13=3HH11(78)=78%13=0HH11(31)=31%13=5(发生冲突)(发生冲突)RH(31)=(731)%10+1=8HH22(31)=(5+8)%13=0(发生冲突)(发生冲突)HH33(31)=(0+8)%13=8(成功)(成功)H1 1(15)=15%13=2H1 1(36)=36%13=10(发生冲突)(发生冲突)RH(36)=(736)%10+1=3HH22(36)=(10+3)%13=0(发生冲突)(发生冲突)HH33(36)=(0+3)%13=3(发生冲突)(发生冲突)HH44(36)=(3+3)%13=6(发生冲突)(发生冲突)HH44(36)=(6+3)%13
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散数学 课件 复习 习题 讲解
限制150内