离散数学 树 知识点总结

合集下载

离散数学知识点总结

离散数学知识点总结

离散数学知识点总结总结离散数学知识点第二章命题逻辑1.→,前键为真,后键为假才为假;,相同为真,别同为假;2.主析取范式:极小项(m)之和;主合取范式:极大项(M)之积;3.求极小项时,命题变元的确信为1,否定为0,求极大项时相反;4.求极大极小项时,每个变元或变元的否定只能浮现一次,求极小项时变元别够合取真,求极大项时变元别够析取假;5.求范式时,为保证编码别错,命题变元最好按P,Q,R的顺序依次写;6.真值表中值为1的项为极小项,值为0的项为极大项;7.n个变元共有n2个极小项或极大项,这n2为(0~n2-1)刚好为化简完后的主析取加主合取;8.永真式没有主合取范式,永假式没有主析取范式;9.推证蕴含式的办法(=>):真值表法;分析法(假定前键为真推出后键为真,假定前键为假推出后键也为假)10.命题逻辑的推理演算办法:P规则,T规则①真值表法;②直截了当证法;③归谬法;④附加前提法;第三章谓词逻辑1.一元谓词:谓词惟独一具个体,一元谓词描述命题的性质;多元谓词:谓词有n个个体,多元谓词描述个体之间的关系;2.全称量词用蕴含→,存在量词用合取^;3.既有存在又有全称量词时,先消存在量词,再消全称量词;第四章集合1.N,表示自然数集,1,2,3……,别包括0;2.基:集合A中别同元素的个数,|A|;3.幂集:给定集合A,以集合A的所有子集为元素组成的集合,P(A);4.若集合A有n个元素,幂集P(A)有n2个元素,|P(A)|=||2A=n2;5.集合的分划:(等价关系)①每一具分划基本上由集合A的几个子集构成的集合;②这几个子集相交为空,相并为全(A);6.集合的分划与覆盖的比较:分划:每个元素均应浮现且仅浮现一次在子集中;覆盖:只要求每个元素都浮现,没有要求只浮现一次;第五章关系1.若集合A有m个元素,集合B有n个元素,则笛卡尔A×B的基2种别同的关系;数为mn,A到B上能够定义mn2.若集合A有n个元素,则|A×A|=2n,A上有22n个别同的关系;3.全关系的性质:自反性,对称性,传递性;空关系的性质:反自反性,反对称性,传递性;全封闭环的性质:自反性,对称性,反对称性,传递性;4.前域(domR):所有元素x组成的集合;后域(ranR):所有元素y组成的集合;5.自反闭包:r(R)=RUI;x对称闭包:s(R)=RU1-R;传递闭包:t(R)=RU2R U3R U……6.等价关系:集合A上的二元关系R满脚自反性,对称性和传递性,则R 称为等价关系;7.偏序关系:集合A上的关系R满脚自反性,反对称性和传递性,则称R 是A上的一具偏序关系;8.covA={|x,y属于A,y盖住x};9.极小元:集合A中没有比它更小的元素(若存在也许别唯一);极大元:集合A中没有比它更大的元素(若存在也许别唯一);最小元:比集合A中任何其他元素都小(若存在就一定唯一);最大元:比集合A中任何其他元素都大(若存在就一定唯一);10.前提:B是A的子集上界:A中的某个元素比B中任意元素都大,称那个元素是B的上界(若存在,也许别唯一);下界:A中的某个元素比B中任意元素都小,称那个元素是B的下界(若存在,也许别唯一);上确界:最小的上界(若存在就一定唯一);下确界:最大的下界(若存在就一定唯一);第六章函数2种别同的关系,有m n种别同的函1.若|X|=m,|Y|=n,则从X到Y有mn 数;2.在一具有n个元素的集合上,能够有22n种别同的关系,有n n种别同的函数,有n!种别同的双射;3.若|X|=m,|Y|=n,且m,满脚f(a*b)=f(a)^f(b),则f为由到的同态映射;若f是双射,则称为同构;第八章群1.广群的性质:封闭性;半群的性质:封闭性,结合律;含幺半群(独异点):封闭性,结合律,有幺元;群的性质:封闭性,结合律,有幺元,有逆元;2.群没有零元;3.阿贝尔群(交换群):封闭性,结合律,有幺元,有逆元,交换律;4.循环群中幺元别能是生成元;5.任何一具循环群必然是阿贝尔群;第十章格与布尔代数1.格:偏序集合A中任意两个元素都有上、下确界;2.格的基本性质:1) 自反性a≤a 对偶: a≥a2) 反对称性a≤b ^ b≥a => a=b对偶:a≥b ^ b≤a => a=b3) 传递性a≤b ^ b≤c => a≤c对偶:a≥b ^ b≥c => a≥c4) 最大下界描述之一a^b≤a 对偶avb≥aA^b≤b 对偶avb≥b5)最大下界描述之二c≤a,c≤b => c≤a^b对偶c≥a,c≥b =>c≥avb6) 结合律a^(b^c)=(a^b)^c对偶 av(bvc)=(avb)vc7) 等幂律a^a=a 对偶 ava=a8) 汲取律a^(avb)=a 对偶 av(a^b)=a9) a≤b a^b=a avb=b10) a≤c,b≤d => a^b≤c^d avb≤cvd11) 保序性b≤c => a^b≤a^c avb≤avc12)分配别等式av(b^c)≤(avb)^(avc) 对偶a^(bvc)≥(a^b)v(a^c)13)模别等式a≤c av(b^c)≤(avb)^c3.分配格:满脚a^(bvc)=(a^b)v(a^c)和av(b^c)=(avb)^(avc);4.分配格的充要条件:该格没有任何子格与钻石格或五环格同构;5.链格一定是分配格,分配格必然是模格;6.全上界:集合A中的某个元素a大于等于该集合中的任何元素,则称a为格的全上界,记为1;(若存在则唯一)全下界:集合A中的某个元素b小于等于该集合中的任何元素,则称b为格的全下界,记为0;(若存在则唯一)7.有界格:有全上界和全下界的格称为有界格,即有0和1的格;8.补元:在有界格内,假如a^b=0,avb=1,则a和b互为补元;9.有补格:在有界格内,每个元素都至少有一具补元;10.有补分配格(布尔格):既是有补格,又是分配格;11.布尔代数:一具有补分配格称为布尔代数;第十一章图论1.邻接:两点之间有边连接,则点与点邻接;2.关联:两点之间有边连接,则这两点与边关联;3.平庸图:惟独一具孤立点构成的图;4.简单图:别含平行边和环的图;5.无向彻底图:n个节点任意两个节点之间都有边相连的简单无向图;有向彻底图:n个节点任意两个节点之间都有边相连的简单有向图;6.无向彻底图有n(n-1)/2条边,有向彻底图有n(n-1)条边;7.r-正则图:每个节点度数均为r的图;8.握手定理:节点度数的总和等于边的两倍;9.任何图中,度数为奇数的节点个数必然是偶数个;10.任何有向图中,所有节点入度之和等于所有节点的出度之和;11.每个节点的度数至少为2的图必然包含一条回路;12.可达:关于图中的两个节点v,j v,若存在连接i v到j v的路,则称iv与j v相互可达,也称i v与j v是连通的;在有向图中,若存在i v到j v i的路,则称v到j v可达;i13.强连通:有向图章任意两节点相互可达;单向连通:图中两节点至少有一具方向可达;弱连通:无向图的连通;(弱连通必然是单向连通)14.点割集:删去图中的某些点后所得的子图别连通了,假如删去其他几个点后子图之间仍是连通的,则这些点组成的集合称为点割集;割点:假如一具点构成点割集,即删去图中的一具点后所得子图是别连通的,则该点称为割点;15.关联矩阵:M(G),m是i v与j e关联的次数,节点为行,边为列;ij无向图:点与边无关系关联数为0,有关系为1,有环为2;有向图:点与边无关系关联数为0,有关系起点为1终点为-1,关联矩阵的特点:无向图:①行:每个节点关联的边,即节点的度;②列:每条边关联的节点;有向图:③所有的入度(1)=所有的出度(0);16.邻接矩阵:A(G),a是i v邻接到j v的边的数目,点为行,点为ij列;17.可达矩阵:P(G),至少存在一条回路的矩阵,点为行,点为列;P(G)=A(G)+2A(G)+3A(G)+4A(G)可达矩阵的特点:表明图中任意两节点之间是否至少存在一条路,以及在任何节点上是否存在回路;A(G)中所有数的和:表示图中路径长度为1的通路条数;2A(G)中所有数的和:表示图中路径长度为2的通路条数;3A(G)中所有数的和:表示图中路径长度为3的通路条数;4A(G)中所有数的和:表示图中路径长度为4的通路条数;P(G)中主对角线所有数的和:表示图中的回路条数;18.布尔矩阵:B(G),v到j v有路为1,无路则为0,点为行,点为i列;19.代价矩阵:邻接矩阵元素为1的用权值表示,为0的用无穷大表示,节点自身到自身的权值为0;20.生成树:只拜访每个节点一次,通过的节点和边构成的子图;21.构造生成树的两种办法:深度优先;广度优先;深度优先:①选定起始点v;②挑选一具与v邻接且未被拜访过的节点1v;③从v动身按邻接方向接着拜访,当遇到一具节点所有邻接1点均已被拜访时,回到该节点的前一具点,再寻求未被拜访过的邻接点,直到所有节点都被拜访过一次;广度优先:①选定起始点v;②拜访与v邻接的所有节点1v,2v,……,k v,这些作为第一层节点;③在第一层节点中选定一具节点v为起点;1④重复②③,直到所有节点都被拜访过一次;22.最小生成树:具有最小权值(T)的生成树;23.构造最小生成树的三种办法:克鲁斯卡尔办法;管梅谷算法;普利姆算法;(1)克鲁斯卡尔办法①将所有权值按从小到大罗列;②先画权值最小的边,然后去掉其边值;重新按小到大排序;③再画权值最小的边,若最小的边有几条相同的,挑选时要满脚别能浮现回路,然后去掉其边值;重新按小到大排序;④重复③,直到所有节点都被拜访过一次;(2)管梅谷算法(破圈法)①在图中取一回路,去掉回路中最大权值的边得一子图;②在子图中再取一回路,去掉回路中最大权值的边再得一子图;③重复②,直到所有节点都被拜访过一次;(3)普利姆算法①在图中任取一点为起点v,连接边值最小的邻接点2v;1②以邻接点v为起点,找到2v邻接的最小边值,假如最小边值2比v邻接的所有边值都小(除已连接的边值),直截了当连接,否则退回1。

离散数学图论(图、树)常考考点知识点总结

离散数学图论(图、树)常考考点知识点总结

离散数学图论(图、树)常考考点知识点总结图的定义和表示1.图:一个图是一个序偶<V , E >,记为G =< V ,E >,其中:① V ={V1,V2,V3,…, Vn}是有限非空集合,Vi 称为结点,V 称为节点集② E 是有限集合,称为边集,E中的每个元素都有V中的结点对与之对应,称之为边③与边对应的结点对既可以是无序的,也可以是有序的表示方法集合表示法,邻接矩阵法2.邻接矩阵:零图的邻接矩阵全零图中不与任何结点相邻接的结点称为孤立结点,两个端点相同的边称为环或者自回路3.零图:仅有孤立节点组成的图4.平凡图:仅含一个节点的零图无向图和有向图5.无向图:每条边都是无向边的图有向图:每条边都是有向边的图6.多重图:含有平行边的图(无向图中,两结点之间包括结点自身之间的几条边;有向图中同方向的边)7.线图:非多重图8.重数:平行边的条数9..简单图:无环的线图10.子图,真子图,导出子图,生成子图,补图子图:边和结点都是原图的子集,则称该图为原图的子图真子图(该图为原图的子图,但是不跟原图相等)11.生成子图:顶点集跟原图相等,边集是原图的子集12.导出子图:顶点集是原图的子集,边集是由顶点集在原图中构成的所有边构成的图完全图(任何两个节点之间都有边)13.完全图:完全图的邻接矩阵主对角线的元素全为0,其余元素都是114.补图:完全图简单图15.自补图:G与G的补图同构,则称自补图16.正则图:无向图G=<V,E>,如果每个顶点的度数都是k,则图G称作k-正则图17.结点的度数利用邻接矩阵求度数:18.握手定理:图中结点度数的总和等于边数的两倍推论:度数为奇数的结点个数为偶数有向图中,所有结点的入度=出度=边数19.图的度数序列:出度序列+入度序列20.图的同构:通俗来说就是两个图的顶点和边之间有双射关系,并且每条边对应的重数相同(也就是可任意挪动结点的位置,其他皆不变)21.图的连通性及判定条件可达性:对节点vi 和vj 之间存在通路,则称vi 和vj 之间是可达的22.无向图的连通性:图中每两个顶点之间都是互相可达的23..强连通图:有向图G 的任意两个顶点之间是相互可达的判定条件:G 中存在一条经过所有节点至少一次的回路24.单向连通图:有向图G 中任意两个顶点之间至少有一个节点到另一个节点之间是可达的判定条件:有向图G 中存在一条路经过所有节点25.弱连通图:有向图除去方向后的无向图是连通的判定条件:有向图邻接矩阵与转置矩阵的并是全一的矩阵26.点割:设无向图G=<V,E>为联通图,对任意的顶点w  V,若删除w及与w相关联的所有边后,无向图不再联通,则w称为割点;27.点割集:设无向图G=<V,E>为连通图,若存在点集 ,当删除 中所有顶点及与V1顶点相关联的所有边后,图G不再是联通的;而删除了V1的任何真子集 及与V2中顶点先关的所有边后,所得的子图仍是连通图,则称V1是G的一个点割集设无向图G=<V,E>为连通图,任意边e  E,若删除e后无向图不再联通,则称e 为割边,也成为桥28.边割集:欧拉图,哈密顿图,偶图(二分图),平面图29.欧拉通路(回路):图G 是连通图,并且存在一条经过所有边一次且仅一次的通路(回路)称为拉通路(回路)30.欧拉图:存在欧拉通路和回路的图31.半欧拉图:有通路但没有欧拉回路32.欧拉通路判定:图G 是连通的,并且有且仅有零个或者两个奇度数的节点欧拉回路判定:图G 是连通的,并且所有节点的度数均为偶数有向欧拉图判定:图G 是连通的,并且所有节点的出度等于入度33.哈顿密图:图G 中存在一条回路,经过所有点一次且仅一次34..偶图:图G 中的顶点集被分成两部分子集V1,V2,其中V1nV2= o ,V1UV2= V ,并且图G 中任意一条边的两个端点都是一个在V1中,一个在V2中35.平面图:如果把无向图G 中的点和边画在平面上,不存在任何两条边有不在端点处的交叉点,则称图G 是平面图,否则是非平面图36.图的分类树无向树和有向树无向树:连通而不含回路的无向图称为无向树生成树:图G 的某个生成子图是树有向树:一个有向图,略去所有有向边的方向所得到的无向图是一棵树最小生成树最小生成树:设G -< V . E 是连通赋权图,T 是G 的一个生成树,T 的每个树枝所赋权值之和称为T 的权,记为W ( T . G 中具有最小权的生成树称为G 的最小生成树最优树(哈夫曼树)设有一棵二元树,若对所有的树叶赋以权值w1,w2… wn ,则称之为赋权二元树,若权为wi 的叶的层数为L ( wi ),则称W ( T )= EWixL ( wi )为该赋权二元树的权,W )最小的二元树称为最优树。

离散数学知识点总结

离散数学知识点总结

注意/技巧:析取符号为V,大写字母Vx + y = 3不是命题前件为假时,命题恒为真运用吸收律命题符号化过程中要注意命题间的逻辑关系,认真分析命题联结词所对应的自然语言中的联结词,不能只凭字面翻译。

也就是说,在不改变原意的基础上,按照最简单的方式翻译通用的方法:真值表法VxP(x)蕴含存在xP(x)利用维恩图解题证明两个集合相等:证明这两个集合互为子集常用的证明方法:任取待证集合中的元素<,>构造相应的图论模型第一章命题逻辑命题和联结词命题的条件:表达判断的陈述句、具有确定的真假值。

选择题中的送分题原子命题也叫简单命题,与复合命题相对简单联结词的真值表要记住非(简单)合取(当且仅当P,Q都为真时,命题为真)析取(当且仅当P,Q都为假时,命题为假),P,Q可以同时成立,是可兼的或条件(→)(当且仅当P为真,Q为假时,命题为假)P是前件,Q是后件只要P,就Q等价于P→Q只有P,才Q等价于非P→非Q,也就是Q→PP→Q特殊的表达形式:P仅当Q、Q每当P双条件(↔)(当且仅当P与Q具有相同的真假值时,命题为真,与异或相反)命题公式优先级由高到低:非、合取和析取、条件和双条件括号省略条件:①不改变先后次序的括号可省去②最外层的括号可省去重言式(永真式)、矛盾式(永假式)、偶然式可满足式:包括重言式和偶然式逻辑等价和蕴含(逻辑)等价:这是两个命题公式之间的关系,写作“⇔”,要与作为联结词的↔区分开来。

如果命题公式A为重言式,那么A⇔T常见的命题等价公式:需要背过被标出的,尽量去理解。

关键是掌握公式是将哪个符号转换为了哪个符号,这对于解证明题有很大的帮助!验证两个命题公式是否等价:当命题变元较少时,用真值表法。

当命题变元较多时,用等价变换的方法,如代入规则、替换规则和传递规则定理:设A、B是命题公式,当且仅当A↔B是一个重言式时,有A和B逻辑等价。

蕴含:若A→B是一个重言式,就称作A蕴含B,记作A⇒B常见的蕴含公式的运用方法同上面的命题等价公式证明A⇒B:①肯定前件,推出后件为真②否定后件,推出前件为假当且仅当A⇒B且B⇒A时,A⇔B,也就是说,要证明两个命题公式等价,可以证明它们相互蕴含联结词的完备集新的联结词:条件否定、异或(不可兼或)、或非(析取的否定)、与非(合取的否定)任意命题公式都可由仅含{非,析取}或{非,合取}的命题公式来等价地表示全功能联结词集合极小全功能联结词集合对偶式对偶式:将仅含有联结词非、析取、合取(若不满足,需先做转换)的命题公式A中的析取变合取,合取变析取,T变F,F变T得到的命题公式A*称为A的对偶式范式析取式:否定+析取合取式:否定+合取析取范式:(合取式)析取(合取式)……析取(合取式)。

离散数学 树

离散数学 树

离散数学树
离散数学中的树(Tree)是一种常见的图论结构,它是一种无向、连通且没有简单回路的无向图,或者是一个有向连通图,其中每个节点都只有唯一一个父节点(除了根节点)。

树形结构中的每一个节点都可以视为一个子树的根节点,因为它下面连接了若干个子节点,这样就形成了一棵向下生长的树状结构。

树形结构还有一个重要的特点就是它具有很好的递归性质,因为每个节点下面都可以再建立一棵子树,这样就可以逐层递归地构建出整棵树。

在离散数学中,树被广泛应用于算法设计、数据结构以及对计算机网络和信息系统进行建模等领域。

树的深度和广度优先遍历、树的一些基本性质(如高度、度、叶子节点等)以及树的遍历应用在图的搜索算法、排序、哈夫曼编码、抽象语法树等算法中都有广泛的应用。

离散数学7-树

离散数学7-树

(b)
(a)
V5
2
1
V7
8
9
V2
V4
2
3
V8
5
V1
V1
V4
V5
1
3
V7
V6
8
V4
2
V8
5
6
V1
1
V5
6
V7
V6
8
3
V8
5
6
V7
9
V3
(e)
V3
(f)
(g)
22
V2
V3
(h)
五.应用举例——求最小生成树
例3 用管梅谷算法求下图的最小生成树。
23
五.应用举例——求最小生成树
例3 用管梅谷算法求下图的最小生成树。
成圈。
首先证明T无简单回路。对n作归纳证明。
(i) n=1时,m=n-1=0,显然无简单回路;
(ii)假设顶点数为n-1时无简单回路,现考察顶点数是n的情况:此时至少有一
个顶点v其次数d(v)=1。因为若n个顶点的次数都大于等于2,则不少于n条边,但这与
m=n-1矛盾。
删去v及其关联边得到新图T’,根据归纳假设T’无简单回路,再加回v及其关联
边又得到图T,则T也无简单回路。
再由图的连通性可知,加入任何一边后就会形成圈,且只有一个圈,否则原图
中会含圈。
9
二. 基本定理——证明
证明(4):(3)(4),即证一个无圈图若加入任一边就形成圈,
则该图连通,且其任何一边都是桥。
若图不连通,则存在两个顶点vi和vj,在vi和vj之间没有路,若
加边(vi,vj)不会产生简单回路,但这与假设矛盾。由于T无简单回

离散数学知识点总结及应用

离散数学知识点总结及应用

离散数学知识点总结及应用
知识点1: 集合论
- 集合的定义和表示方法
- 集合的运算:并、交、差、补
- 集合的基本性质和定律
知识点2: 逻辑与命题
- 命题的定义和特性
- 命题的联结词:与、或、非
- 命题的真值表和逻辑运算
- 命题的充分条件和必要条件
知识点3: 关系与函数
- 关系的定义和性质
- 关系的类型:自反、对称、传递、等价
- 函数的定义和基本概念
- 函数的特性和图像
知识点4: 图论
- 图的基本概念和术语
- 图的存储结构:邻接矩阵、邻接表
- 图的遍历算法:深度优先搜索、广度优先搜索
- 最短路径算法:Dijkstra算法、Floyd-Warshall算法
知识点5: 组合数学
- 排列和组合的基本概念
- 排列和组合的计算方法
- 随机变量和概率分布
- 组合数学在密码学等领域的应用
知识点6: 布尔代数
- 布尔代数的基本运算:与、或、非
- 布尔函数的最小化方法
- 布尔代数的应用:逻辑电路设计、编码器等
知识点7: 计算理论
- 自动机的基本概念和分类
- 正则语言和正则表达式
- 文法的定义和性质
- 上下文无关文法和巴科斯范式
知识点8: 数论
- 整数的性质和基本运算
- 质数和分解定理
- 同余关系和同余方程
- 数论在加密算法中的应用
以上是离散数学中的一些主要知识点和应用场景的简要总结,希望对你的研究有所帮助。

离散数学树知识点总结

离散数学树知识点总结

第六章树一、掌握根本概念树的子树是互不相交的,树可以为空〔空树〕非空的树中,只有一个结点是没有前趋的,那就是根。

非空树只有一个树根,是一对多的关系。

叶子结点、结点的度、树的度、结点的层次、树的深度、树的四种表示方法二、二叉树的定义、特点、五种根本形态二叉树是有序树,左右子树不能互相颠倒二叉树中结点的最大度为2,但不一定都是2。

三、二叉树的性质要掌握性质1:二叉树的第i层上至多有2 i-1〔i 1〕个结点。

性质2:深度为k的二叉树中至多2k-1个结点。

性质3:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,那么n0=n2+1。

证明:1)结点总数n=n0+n1+n2 (n1是度为1的结点数)2)进入分支总数m(每个结点唯一分支进入) n=m+13)m个分支是由非叶子结点射出m=n1+2n2性质4:具有n个结点的完全二叉树的深度k为[log2n]+1四、满二叉树和完全二叉树的区别是什么?满二叉树一定是完全二叉树,但是完全二叉树不一定是满二叉树。

深度为k的二叉树,最少有k个结点,最多有2k-1深度为k的完全二叉树,最少有2k-1-1+1个结点,最多有2k-1五、二叉树的存储构造〔可以通过下标找结点的左右孩子〕1.顺序存储构造适用于满二叉树和完全二叉树。

〔其缺点是必须把其他二叉树补成完全二叉树,从上到下,从左到右依次存储在顺序存储空间里,会造成空间浪费〕2.二叉链表存储构造〔其优点是找左孩子和右孩子方便,但缺点是找父节点麻烦〕lchild Data rchild〔重点〕3. 三叉链表存储构造不仅找其左、右孩子很方便,而且找其双亲也方便六、遍历的概念是什么?七、二叉树的遍历有三种:前序〔先序、先根〕遍历、中序〔中序、中根〕遍历、后序〔后序、后根〕遍历1.给出一棵二叉树,要会二叉树的三种遍历2.给出两种遍历〔必须有中序遍历〕,要求会画该二叉树。

八、了解引入线索〔中序、先序、后序〕二叉树的原因是什么?九、会在二叉树上画先序线索化、中序线索化、后序线索化。

离散数学 第12章 树

离散数学 第12章 树

在图12.2.1所示图中,e1, e2 , e3 , e4 , e5 , e9 ,为T 的树枝,
设它们对应的基本割集分别为
(S1, S2 , S3 , S4 , S。5 , 以S6 )树
枝为集合中第一个元素的方式写出它们(当然集合中
的元素是不讲顺序的,这里为了区分树枝和弦)。
S1 {e1, e7 , e8}、S2 、 {e2 , e7 , e8 , e10 , e11} S3 {e3 , e10 , e11} 、S4 {e4 , e6}
的割集是不同的也是显然的。
27
12.2.1 生成树
• 定义12.2.4 设T 是n阶连通图G 的一棵生成树,e1,e2 , ,en1
为G T的对的应树生枝成,S树i 是TG由的树只枝含e树i生枝成e的i 的基割本集割,则称 S i 为
集,i 1,2, , n 1。并称 {S1, S2 , , Sn1} 为G 对应T 的基本 割集系统,称n-1为G 的割集秩,记作 (G)。.
• 例题12.2.1 求图12.2.2所示两个图中的最
小生成树。
1
1
2
2
3
1
53
1
4
5
7
3
2
6
1
4
30
12.2.2 最小代价生成树
• 解 用避圈法算法,求出的(a)中最小生成树
为图T1 12.2.3中(a)中实线边所示的生成 树,W(T1) 6 。(b)中的最小生成树(b)为图 12.2.3中实边所示的生成树T2 ,W (T2 ) 12 。
环(否则,可以将所有的环先删去),将m 条边按权从小到大
顺序排列,设为 e1, e2 ,。,em
中取的e边1在不T能中构,成然回后路依,次则检取查e
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(重点)
3.三叉链表存储结构
不仅找其左、右孩子很方便,而且找其双亲也方便
六、遍历的概念是什么?
七、二叉树的遍历有三种:前序(先序、先根)遍历、中序(中序、中根)遍历、后序(后序、后根)遍历
1.给出一棵二叉树,要会二叉树的三种遍历
2.给出两种遍历(必须有中序遍历),要求会画该二叉树。
八、了解引入线索(中序、先序、后序)二叉树的原因是什么?
void BTreeLeaf (BiTree BT)
{
if(BT)
{
if(BT-> LChild==NULL && BT->RChild==NULL) count++;
BTreeLeaf (BT->LChild); //访问左子树
BTreeLeaf (BT->RChild); //访问右子树
}
}
或下面算法均可
3)m个分支是由非叶子结点射出m=n1+2n2
性质4:具有n个结点的完全二叉树的深度k为[log2n]+1
四、满二叉树和完全二叉树的区别是什么?
满二叉树一定是完全二叉树,但是完全二叉树不一定是满二叉树。
深度为k的二叉树,最少有k个结点,最多有2k-1
深度为k的完全二叉树,最少有2k-1-1+1个结点,最多有2k-1
编写递归算法,计算二叉树中叶子结点的数目。
int LeafCount_BiTree(Bitree T)//求二叉树中叶子结点的数目
{
if(!T) return 0; //空树没有叶子
else if(!T->lchild&amn 1; //叶子结点
else return Leaf_Count(T->lchild)+Leaf_Count(T->rchild);//左子树的叶子数加上右子树的叶子数
}
第六章树
一、掌握基本概念
树的子树是互不相交的,树可以为空(空树)
非空的树中,只有一个结点是没有前趋的,那就是根。
非空树只有一个树根,是一对多的关系。
叶子结点、结点的度、树的度、结点的层次、树的深度、树的四种表示方法
二、二叉树的定义、特点、五种基本形态
二叉树是有序树,左右子树不能互相颠倒
二叉树中结点的最大度为2,但不一定都是2。
五、二叉树的存储结构(可以通过下标找结点的左右孩子)
1.顺序存储结构适用于满二叉树和完全二叉树。(其缺点是必须把其他二叉树补成完全二叉树,从上到下,从左到右依次存储在顺序存储空间里,会造成空间浪费)
2.二叉链表存储结构(其优点是找左孩子和右孩子方便,但缺点是找父节点麻烦)
lchildDatarchild
Int BTreeHeight(BiTree BT){
if (BT==NULL) return 0;
else {
h1=BTreeHeight(BT->LChild);
h2=BTreeHeight(BT->RChild);
if (h1>h2) return(h1+1);
else return( h2+1);
int degree2nodenum(BiTree T)
{if (T){
if(T->lchild!=NULL &&T->child!=NULL)
count++;
leafnodenum(l->lchild);
leafnodenum(l->rchild);
}
return count;
}
3.已知二叉树中的结点类型用BiTNode表示,被定义描述为:
}//LeafCount_BiTree
4.PPT上的三种遍历递归算法和课本上P131先序递归创建二叉链表。
5.给定一棵二叉树,其根指针为root。试写出求二叉树结点数目的算法(递归算法或非递归算法)。
【提示】采用递归算法实现。
int count(BiTree t){
if (t==NULL)
return 0;
typedef struct link
{int data;
struct link * lchild;
struct link * rchild;
} bitnode , *bitree ;
void sum(bitree *bt,int &s)
{
if(bt!=0) {s=s+bt->data; sum(bt->lchild,s); sum(bt->rchild,s);}
else
return count(t->lchild)+count(t->rchild)+1;
}
6.以二叉链表为存储结构,写一算法交换各结点的左右子树。
【分析】
依题意,设t为一棵用二叉链表存储的二叉树,则交换各结点的左右子树的运算基于后序遍历实现:交换左子树上各结点的左右子树;交换右子树上各结点的左右子树;再交换根结点的左右子树。
三、二叉树的性质要掌握
性质1:二叉树的第i层上至多有2 i-1(i 1)个结点。
性质2:深度为k的二叉树中至多2k-1个结点。
性质3:对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
证明:1)结点总数n=n0+n1+n2 (n1是度为1的结点数)
2)进入分支总数m(每个结点唯一分支进入) n=m+1
九、会在二叉树上画先序线索化、中序线索化、后序线索化。
在线索二叉树的格式中,可以找到任意结点的直接后继。(错)
在线索二叉树中,如果某结点的右孩子为空,那么可以找到该结点的直接后继。(对)
在线索二叉树中,如果某结点的左孩子为空,那么可以找到该结点的直接前趋。(对)
十、树.森林和二叉树的相互转换
树转换成二叉树后,转换后的二叉树根的右子树为空。
第6章算法设计题
1.已知二叉树中的结点类型用BiTNode表示,被定义描述为:
Typedef struct BiTNode {
TElemType data ;
struct BiTNode * LChild , *RChild;
} BiTNode,*BiTree;
其中data为结点值域,LChild和RChild分别为指向左、右孩子结点的指针域,编写出求一棵二叉树高度的算法。
【算法】
void Exchg(BiTree *t){
BinNode *p;
if (t){
P=(*t)->lchild;
(*t)->lchild=(*t)->rchild;
(*t)->rchild=p;
Exchg(&((*t)->lchild));
Exchg(&((*t)->rchild));
}
}
7.已知一棵二叉树采用二叉链表结构存储,每个结点的值为整数类型。要求:给出相应的语言描述,在此基础上设计计算二叉树中所有结点值之和的算法。
Typedef struct BiTNode {
TElemType data ;
struct BiTNode * LChild , *RChild;
} BiTNode,*BiTree;
BiTree T;
其中data为结点值域,LChild和RChild分别为指向左、右孩子结点的指针域,写一算法,求出二叉树中的叶子结点个数。
}
}
2.已知二叉树中的结点类型用BiTNode表示,被定义描述为:
Typedef struct BiTNode {
TElemType data ;
struct BiTNode * LChild , *Rchild;
} BiTNode,*BiTree;
BiTree T;
其中data为结点值域,LChild和RChild分别为指向左、右孩子结点的指针域,编写算法,求出二叉树中2度结点个数。
十一、森林的遍历(只有先序遍历和后序遍历)
先序遍历一棵树,相当于先序遍历该树所对应的二叉树。
后序遍历一棵树,相当于中序遍历该树所对应的二叉树。
十二、赫夫曼树(又称最优二叉树或哈夫曼树)、赫夫曼树编码
1.赫夫曼树中,权越大的叶子离根越近,其形态不唯一,但是WPL带权路径长度一定是最小。
2.一定要会构造哈夫曼树,在构造好的哈夫曼树上会构造哈夫曼编码。(认真看题目要求)
相关文档
最新文档