Java怎么实现搜索算法二叉搜索树
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"Java怎么实现搜索算法二叉搜索树",内容详细,步骤清晰,细节处理妥当,希望这篇"Java怎么实现搜索算法二叉搜索树"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2026年11月01日Java怎么实现搜索算法二叉搜索树
本文小编为大家详细介绍"Java怎么实现搜索算法二叉搜索树",内容详细,步骤清晰,细节处理妥当,希望这篇"Java怎么实现搜索算法二叉搜索树"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
一、二叉搜索树插入元素
/** * user:ypc; * date:2021-05-18; * time: 15:09; */ class Node { int val; Node left; Node right; Node(int val) { this.val = val; } } public void insert(int key) { Node node = new Node(key); if (this.root == null) { root = node; } Node cur = root; Node parent = null; while (cur != null) { if (cur.val == key) { //System.out.println("元素已经存在"); return; } else if (cur.val > key) { parent = cur; cur = cur.left; } else { parent = cur; cur = cur.right; } } if (key > parent.val) { parent.right = node; } else { parent.left = node; } }二、搜索指定节点
public boolean search(int key) { Node cur = root; while (cur != null) { if (cur.val == key) { return true; } else if (cur.val > key) { cur = cur.left; } else { cur = cur.right; } } return false; }三、删除节点方式一
public void removenode1(Node parent, Node cur) { if (cur.left == null) { if (cur == root) { root = cur.right; } else if (cur == parent.right) { parent.left = cur.right; } else { parent.right = cur.right; } } else if (cur.right == null) { if (cur == root) { root.left = cur; } else if (cur == parent.right) { parent.right = cur.left; } else { parent.left = cur.left; } } else { Node tp = cur; Node t = cur.right; while (t.left != null) { tp = t; t = t.left; } if (tp.left == t) { cur.val = t.val; tp.left = t.right; } if (tp.right == t) { cur.val = t.val; tp.right = t.right; } } } public void remove(int key) { Node cur = root; Node parent = null; while (cur != null) { if (cur.val == key) { removenode1(parent, cur); //removenode2(parent, cur); return; } else if (key > cur.val) { parent = cur; cur = cur.right; } else { parent = cur; cur = cur.left; } } }四、删除节点方式二
public void removenode2(Node parent, Node cur) { if (cur.left == null) { if (cur == root) { root = cur.right; } else if (cur == parent.right) { parent.left = cur.right; } else { parent.right = cur.right; } } else if (cur.right == null) { if (cur == root) { root.left = cur; } else if (cur == parent.right) { parent.right = cur.left; } else { parent.left = cur.left; } } else { Node tp = cur; Node t = cur.left; while (t.right != null) { tp = t; t = t.right; } if (tp.right == t) { cur.val = t.val; tp.right = t.left; } if (tp.left == t) { cur.val = t.val; tp.left = t.left; } } }五、运行结果
/** * user:ypc; * date:2021-05-18; * time: 15:09; */class TestBinarySearchTree { public static void main(String[] args) { int a[] = {5, 3, 4, 1, 7, 8, 2, 6, 0, 9}; BinarySearchTree binarySearchTree = new BinarySearchTree(); for (int i = 0; i < a.length; i++) { binarySearchTree.insert(a[i]); } binarySearchTree.inOrderTree(binarySearchTree.root); System.out.println(); binarySearchTree.preOrderTree(binarySearchTree.root); binarySearchTree.remove(7); System.out.println(); System.out.println("方法一删除后"); binarySearchTree.inOrderTree(binarySearchTree.root); System.out.println(); binarySearchTree.preOrderTree(binarySearchTree.root); }}读到这里,这篇"Java怎么实现搜索算法二叉搜索树"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
搜索
算法
文章
节点
元素
内容
方式
妥当
思路
新知
方法
更多
步骤
知识
知识点
篇文章
细节
结果
行业
资讯
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中智农互联网科技
华服互联网科技怎么样
互联网科技公司的优势
艾特科技互联网
电子科技大学互联网
沃里互联网科技
猫创互联网科技
苏州大垚互联网科技
无锡溥仪互联网科技有限公司
成都仁贤领冠互联网科技有限公司
银川新华互联网科技学校地址
互联网科技产品
随着互联网科技发展
互联网公司科技股
互联网媒体平台算高科技产业
呼和浩特新华互联网科技学院
浙南科技城互联网大厦建设工程
互联网公司高科技产品
上海钢联属于互联网科技股吗
互联网领先科技活动
互联网与科技
朗新科技与工业互联网
天扬科技互联网广告
互联网经济与金融科技
996高科技互联网公司
深圳艾果互联网通讯科技
元气玛特互联网科技公司是外包吗
上海互联网科技公司ppt
珠海东科互联网科技有限公司
互联网科技创业计划的风险分析