持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情。
二叉排序树
又叫二叉查找树或者二叉判断树(左小右大)
定义:
(1)若左子树非空,则左子树上所有结点关键字值均小于根节点的关键字值。
(2)若右子树非空,则右子树上所有结点关键字值均大于根节点的关键字值。
(3)左、右子树本身也分别是一颗二叉排序树。
二叉排序树的删除(重难点)
查找
成功=(层数 * 成功个数)的和/总成功个数
失败
平衡二叉树
任意结点的左右子树高度差的绝对值不超过1,且子树都是平衡树。定义结点的左子树和右子树的高度差为该结点的平衡因子,平衡因子的值可能是-1、0、1。
平衡二叉树的插入(4种)
哈夫曼树
带权路径长度(WPL)最小的二叉树称为哈夫曼树,,也称为最优二叉树。
权重 * 路径长度
图
简单图:不存在重复边、不存在顶点到自身的边。
多重图:图中某两个结点之间的边数多于一条,又允许顶点通过同一条边和自己关联。
完全图:在无向图中,若任意两个顶点之间都存在边。
图结构的存储
四种
邻接矩阵
用一个一维数组存储图中顶点的信息,用一个二维数组存储图中边的信息(即各顶点之间的邻接关系),存储顶点之间邻接关系的二维数组称为邻接矩阵。
无穷:无路径、无权值。数值:有路径、有权值。
网的邻接矩阵到不了用无穷。
邻接表
邻接多重表
是无向图的一种链式存储结构。 箭头指向节点无后继结点是终止。
十字链表
有向图的一种链式存储结构 (画的时候先画出度后画入度)
总结:邻接表、十字链表都是有向图的存储方式、而邻接多重表是无向图的存储方式、邻接矩阵即可以是有向的也可以是无向的。
邻接矩阵要注意不带权的时候,1表示两个点连通,0表示不连通。
带权的时候,连通的两点,矩阵中的值为两点间的权值;点和点自身标为0;不连通的两点的值为无穷。
邻接多重表的边表是从结点的序号开始、一个结点一个结点画。
十字链表是从顶点表开始分为入表和出表两种、先画出表、再入表。
图的遍历
深度优先遍历
深究到底
广度优先遍历
广撒网
图遍历的生成树
最小生成树
普里姆算法:最小连通
克鲁斯卡尔:最短的
最短路径
迪杰斯特拉算法能得出最短路径的最优解
abd指向g的应该是无穷,这里写错了。