二叉樹(java版),二叉樹java版

來源:互聯網
上載者:User

二叉樹(java版),二叉樹java版

//節點類package com.huowolf.test2;public class Node {private int keyData;//關鍵字private int otherData;//其他資料private Node leftNode;//左子節點private Node rightNode;//右子節點public Node(int keyData, int otherData) {this.keyData = keyData;this.otherData = otherData;}public int getKeyData() {return keyData;}public void setKeyData(int keyData) {this.keyData = keyData;}public int getOtherData() {return otherData;}public void setOtherData(int otherData) {this.otherData = otherData;}public Node getLeftNode() {return leftNode;}public void setLefNode(Node leftNode) {this.leftNode = leftNode;}public Node getRightNode() {return rightNode;}public void setRightNode(Node rightNode) {this.rightNode = rightNode;}//顯示方法public void display() {System.out.println(keyData+", "+otherData);}}
package com.huowolf.test2;public class Tree {private Node root;public Node getRoot() {return root;}//插入方法public void insert(int keyData, int otherData) {Node newNode = new Node(keyData, otherData);if(root == null) {root = newNode;}else {Node current = root;Node parent;//儲存當前節點的父節點的引用while(true) {parent = current;if(keyData < current.getKeyData())  {current = current.getLeftNode();if(current == null) {parent.setLefNode(newNode);return;}} else {current = current.getRightNode();if(current == null) {parent.setRightNode(newNode);return;}}}}}//尋找方法public Node find(int keyData) {Node current = root;while(current.getKeyData() != keyData) {if(keyData < current.getKeyData()) {current = current.getLeftNode();} else {current = current.getRightNode();}if(current == null) {return null;}}return current;}//修改方法public void change(int keyData, int newOtherData) {Node findNode = find(keyData);findNode.setOtherData(newOtherData);}//先序遍曆public void  preOrder(Node node) {if(node != null) {node.display();preOrder(node.getLeftNode());preOrder(node.getRightNode());}}//中序遍曆public void  inOrder(Node node) {if(node != null) {inOrder(node.getLeftNode());node.display();inOrder(node.getRightNode());}}//後序遍曆public void postOrder(Node node) {if(node != null) {postOrder(node.getLeftNode());postOrder(node.getRightNode());node.display();}}}

//測試類別package com.huowolf.test2;public class Tree_Test {public static void main(String[] args) {Tree tree = new Tree();tree.insert(80, 75);tree.insert(49, 49);tree.insert(42, 42);tree.insert(30, 30);tree.insert(45,45);tree.insert(150, 110);tree.insert(90, 90);tree.insert(130, 130);tree.insert(82,86);//修改結點tree.change(90, 92);Node findNode = tree.find(90);findNode.display();System.out.println("先序遍曆:");tree.preOrder(tree.getRoot());System.out.println("-------------------------");System.out.println("中序遍曆:");tree.inOrder(tree.getRoot());System.out.println("-------------------------");System.out.println("後序遍曆:");tree.postOrder(tree.getRoot());}}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.