您的位置:首页 > 游戏 > 游戏 > 高德地图上怎么没有菲律宾_开发公司赠送阁楼视同销售_网络营销渠道策略_线上电商怎么做

高德地图上怎么没有菲律宾_开发公司赠送阁楼视同销售_网络营销渠道策略_线上电商怎么做

2025/4/27 20:50:19 来源:https://blog.csdn.net/2401_87851627/article/details/146382476  浏览:    关键词:高德地图上怎么没有菲律宾_开发公司赠送阁楼视同销售_网络营销渠道策略_线上电商怎么做
高德地图上怎么没有菲律宾_开发公司赠送阁楼视同销售_网络营销渠道策略_线上电商怎么做

二叉树

构建二叉树
    int value;Node left;Node right;public Node(int val) {value=val;}
节点的添加
	Node root=null;public void insert(int num) {Node node=new Node(num);if(root==null) {root=node;return;}Node index = root;while(true) {//插入的节点值小if(index.value>num) {if(index.left==null) {//插入index.left=node;return;}else {index =index.left;}}else {//插入的节点值大if(index.right==null) {index.right=node;return;}else {index=index.right;}}}}
遍历
		 public void levelQrder() {Queue<Node> queue=new LinkedList<Node>();if(root!=null)queue.add(root);Node index=null;while(!queue.isEmpty()) {index =queue.poll();System.out.print(index.value+"");if(index.left!=null) {queue.add(index.left);}if(index.right!=null) {queue.add(index.right);}}System.out.println();}
查找

查找某个节点
		    public Node search(int num) {Node index=root;while(index!=null&&index.value!=num) {if(index.value>num) {//目标值小index=index.left;}else {index=index.right;}}return index;}
查找某个节点的父节点
		    public Node searchParent(int num) {Node index=root;while (index!=null) {if((index.left!=null&&index.left.value==num)||
(index.right!=null&&index.right.value==num)){return index;}else if(index.value>num) {index=index.left;}else {index = index.right;}}return null;}
查找一棵树中最小的节点
			public int min(Node treeNode) {Node index = treeNode;while(index.left!=null){index=index.left;}return index.value;}
删除

    删除可分为三种情况,即删除叶子节点、删除只有一棵子树的节点、删除有两棵子树的节点

删除叶子节点


1、找到要删除的节点target

				if(root==null) {System.out.println("空树");return;}//找目标节点Node target = search(num);//没有目标节点if(target==null) {System.out.println("没有这个节点");return;}

2、找要删除节点的父节点parent

3、考虑有没有父节点
      如果没有父节点,那target为根节点root=null

					if(parent==null) {root=null;return;}

4、如果有父节点

      讨论parenti和target的关系
      target是父节点的左孩子      parent.left=null
      target是父节点的右孩子      parent.right=null

删除只有一棵子树的节点


1、找到要删除的节点target
2、找要删除节点的父节点parent
3、考虑有没有父节点
      如果没有父节点,那target为根节点


       判断target有左子树还是右子树?


       如果目标节点有左子树    root=root.left
       如果目标节点有右子树    root=root.right

4、如果目标节点有父节点


     判断目标节点是父节点的左孩子还是右孩子?


(1)目标节点是父节点的左孩子


         判断target有左子树还是右子树?

         目标节点有左子树
         parent.left =target.left


         目标节点有子树
         parent.left =target.left

(2)目标节点是父节点的右孩子


         判断targe有左子还是右子树?

         目标节点有左子树
         parent.right =target.left


         目标节点有子树
         parent.left =target.right


删除有两棵子树的节点


1、找目标节点右子树的最小值(左子树的最大值)替换掉要删除的值
2、把目标节点右子树的最小值(左子树的最大值)删除
 

					int minValue = min(target.right);delete(minValue);target.value=minValue;	

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com