图的深度优先遍历

图的深度优先遍历

从初始访问节点出发,初始节点可能有多个邻接节点,深度优先遍历的策略就是首先访问第一个邻接节点,然后再以这个被访问的邻接节点作为初始节点,访问它的第一个邻接节点访问初始节点v,并标记节点v为已访问查找节点v的第一个邻接节点w若w存在,则继续执行4,如果w不存在(不连接),则回到第1步,将从v的下一个节点继续遍历若w未被访问,对w进行深度优先遍历(即把……

平衡二叉树(AVL树)

平衡二叉树(AVL树)

二叉树结构可以很好的解决插入和查询的问题,但是也有一些特殊的树并不是这样,然而更像单链表左子树全部为空(单链表)上边的问题可以用平衡二叉树来解决平衡二叉树也叫平衡二叉搜索树(AVL树)特点:他的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一个平衡二叉树平衡二叉树的转换是通过左旋转、右旋转和双旋转来完成的一、左旋转……

二叉排序树的删除节点

二叉排序树的删除节点

第一种情况:删除叶子节点思路:先找到要删除的节点 ,变量targetNode找到targetNode的父节点parent确定targetNode是parent的左子节点还是右子节点根据前面的情况来删除第二种情况:删除只有一颗子树的节点思路:1、先找到要删除的节点,变量targetNode2、找到targetNode的父节点parent……

顺序存储二叉树

顺序存储二叉树

* 顺序二叉树通常只考虑完全二叉树* 第n个元素的左子节点为2*n+1* 第n个元素的右子节点为2*n+2* 第n个元素的父节点为(n-1)/2package tree;public class 顺序存储二叉树 {public static void main(String[] args) { int [] arr= {1,2,3,4,5,6……

前序中序后序遍历查找

前序中序后序遍历查找

遍历前序遍历:先输出父节点,再遍历左子树和右子树中序遍历:先遍历左子树,再输出父节点,再遍历右子树后序遍历:先遍历左子树,再遍历右子树,再输出父节点查找前序查找思路* 先判断当前节点的no是否等于要查找的值* 如果相等,则返回当前节点* 如果不等,则判断当前节点的左子节点是否为空,如果不为空,则递归前序查找中序查找思路* 判断当前……

二分查找

二分查找

package 查找;import java.util.ArrayList;public class 二分查找 {public static void main(String[] args) { int []a= {1,2,2,4,5,6}; ArrayList<Integer> list=erfen(a,0,a.length-1……