算法:二叉树代码示例
二叉树特点
左节点值小于根节点值,右节点值大于根节点
public class BinaryTree { private Node root; @Data private static class Node { private int data; private Node left; private Node right; public Node(int data){ this.data = data; } } public Node find(int key){ Node current = root; while(current != null){ if(current.data > key){ current = current.left; } if(current.data < key){ current = current.right; } if(current.data == key){ return current; } } return null; } public boolean insert(int data){ Node newNode = new Node(data); if(root == null){ root = newNode; return true; }else{ Node current = root; Node parent = null; while (current != null){ parent = current; if(current.data > data){ current = current.left; if(current == null){ parent.left = newNode; return true; } } else{ current = current.right; if(current == null){ parent.right = newNode; return true; } } } } return false; } public Node findMax(){ Node current = root; while(current != null){ current = current.right; } return current; } public Node findMin(){ Node current = root; while (current != null) { current = current.left; } return current; } //删除没有子节点的节点 public boolean delete(int key){ Node current = root; Node parent = current; boolean isLeft = false; while (current.data != key){ parent = current; if(current.data > key){ isLeft = true; current = current.left; }else { isLeft = false; current = current.right; } if(current == null){ return false; } } if(current.left == null && current.right == null){ if(current == root){ root = null; } if(isLeft){ parent.left = null; }else{ parent.right = null; } return true; } return false; } }
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
常见算法示例
冒泡排序 for(int i =0;i<arr.length-1;i++) { for(int j=0;j<arr.length-i-1;j++) {//-1为了防止溢出 if(arr[j]>arr[j+1]) { int temp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } 二分查找法 给定数组是按从小到大排序好的 //先排序 bubbleSort(arr); int left = 0; int right = arr.length - 1; int mid; while(left <= right){ mid = (left + right) % 2 == 0 ? (left + right) / 2 : (left + right) / 2 + 1; if(arr[mid] > val){ right = mid ; }else if (arr[mid] < val){ left = mid ; }else{ //找到该值 ** System.out.println(mid);** ret...
- 下一篇
一起深入探讨Maven远程仓库的配置和部署
Maven远程仓库的配置和部署 前言: Maven 是专门用于构建和管理Java相关项目的工具。Maven 是一个项目管理和整合工具。Maven 为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。 Maven 的主要目的是为开发者提供:一个可复用、可维护、更易理解的工程综合模型;与这个模型交互的插件或者工具。 今天要跟大家一起分享探讨的是Maven远程仓库的配置和部署,下面一起进入正题把 一、远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,访问的人或许很多,有时候也无法满足我们项目的需求,可能项目需要的某些构件中央仓库中是没有的,而在其他远程仓库中有,如JBoss Maven仓库。这时,可以在pom.xml中配置该仓库,代码如下: jbossJBoss Repositoryhttp://repository.jboss.com/maven2/truedailyfalsewarndefaultrepository:在rep...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器