博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现二叉树
阅读量:6869 次
发布时间:2019-06-26

本文共 2172 字,大约阅读时间需要 7 分钟。

package ds.tree;/** * 使用二叉链表实现二叉树。 */public class BinaryTree
{ /** * 结点类。 */ class Node { int value; // 该节点存储的值。 Node leftChild; // 指向左子节点的引用。 Node rightChild; // 指向右子节点的引用。 Node(int value) { this.value = value; leftChild = null; rightChild = null; } } private Node root; // 根节点。 /** * 无参构造方法。 */ BinaryTree() { root = null; } /** * 使用一个数组来构造二叉树。 * @param arr 值的数组。 */ BinaryTree(int[] arr) { for (int i : arr) { insert(i); } } private void insert(int value) { root = insert(root, value); } /** * 将数值插入到二叉树中,比当前结点小或等于当前结点的插在当前结点的左侧, * 比当前结点大的数插在当前结点的右侧,每次从根结点开始递归比较。 * @param node 当前的结点,就是根结点,只是每次根结点的左右子孙更新。 * @param value 要插入的值。 * @return 插值结束后的树的根节点。 */ private Node insert(Node node, int value) { if (node == null) { node = new Node(value); } else { if (value <= node.value) { node.leftChild = insert(node.leftChild, value); } else { node.rightChild = insert(node.rightChild, value); } } return node; } /** * 访问节点:将节点的值取出来并打印。 * @param node 需访问的节点。 */ private void visit(Node node) { /** * 当节点为空时返回。 */ if (node == null) { return; } int value = node.value; System.out.println(value); } /** * 从指定节点作为根节点开始递归对树进行先序遍历。 * @param node 指定节点。 */ private void preOrderTravels(Node node) { if (node == null) { return; } else { visit(node); preOrderTravels(node.leftChild); preOrderTravels(node.rightChild); } } /** * 从根节点开始对整个树进行先序遍历。 */ public void preOrderTravels() { preOrderTravels(root); }}
package ds.tree;public class Test {    public static void main(String[] args) {        int arr[] = {12,33,79,1,11,56};        BinaryTree tree = new BinaryTree(arr);        tree.preOrderTravels();    }}

 

转载于:https://www.cnblogs.com/vincent4code/p/4906833.html

你可能感兴趣的文章
MySQL 架构组成—存储引擎
查看>>
基于数值分析思想对多项式求值的原理和应用进行探究
查看>>
vue-devtools vue开发调试神器
查看>>
PHP扩展模块的安装
查看>>
BGP基础操作
查看>>
SimpleXml项目
查看>>
php下使用PDO创建sqlite3数据库
查看>>
Istio技术与实践6:Istio如何为服务提供安全防护能力
查看>>
ISTP的重要作用
查看>>
驼峰设计 PPT美化
查看>>
Python Python 正则 取中括号值
查看>>
uva 658(Dijkstra)
查看>>
uva 11183(最小树形图)
查看>>
sql 集合查询 数据更新操作语句
查看>>
静态内部类
查看>>
localStorage使用总结
查看>>
计算一年中的第几天
查看>>
iOS 一句话获取日期和星期几
查看>>
【javascript】Lazy Load, 延迟加载图片的 jQuery 插件
查看>>
Percona XtraDB Cluster高可用与状态快照传输(PXC 5.7 )
查看>>