二叉树简单模拟

来源:互联网 发布:淘宝消保标志 编辑:程序博客网 时间:2024/05/16 15:06

package com.test.utils;/** * 二叉树模拟类 */public class Tree {// 根节点private TreeNode rootNode = new TreeNode(null, null, null);/** * 添加数据 */public TreeNode add(Long data) {TreeNode node = new TreeNode(data, null, null);TreeNode currentNode = rootNode;if (null != currentNode.data) {while (true) {TreeNode parentNode = currentNode;if (data < parentNode.getData()) {currentNode = currentNode.getLeftChildNode();if (null == currentNode) {parentNode.setLeftChildNode(node);return node;}} else {currentNode = currentNode.getRightChildNode();if (null == currentNode) {parentNode.setRightChildtNode(node);return node;}}}} else {rootNode.data = data;return node;}}/** * 查找节点 */public TreeNode find(long data) {TreeNode currentNode = rootNode;while (null != currentNode && data != currentNode.getData()) {if (data < currentNode.getData()) {currentNode = currentNode.getLeftChildNode();} else {currentNode = currentNode.getRightChildNode();}}return currentNode;}/** * 前序遍历 */public void frontOrder(TreeNode node) {if (null != node) {System.out.println(node.data);frontOrder(node.getLeftChildNode());frontOrder(node.getRightChildNode());}}/** * 中序遍历 */public void inOrder(TreeNode node) {if (null != node) {inOrder(node.getLeftChildNode());System.out.println(node.data);inOrder(node.getRightChildNode());}}public TreeNode getRootNode() {return rootNode;}/** * 二叉树节点对象 */public class TreeNode {private Long data; // 数据域private TreeNode leftChildNode; // 左子节点private TreeNode righttChildNode;// 右子节点public TreeNode(Long data, TreeNode leftChildNode, TreeNode righChildtNode) {super();this.data = data;this.leftChildNode = leftChildNode;this.righttChildNode = righChildtNode;}public Long getData() {return data;}public TreeNode getLeftChildNode() {return leftChildNode;}public void setLeftChildNode(TreeNode leftChildNode) {this.leftChildNode = leftChildNode;}public TreeNode getRightChildNode() {return righttChildNode;}public void setRightChildtNode(TreeNode rightChildtNode) {this.righttChildNode = rightChildtNode;}}}

0 0