X-Git-Url: https://git.piment-noir.org/?p=TP_POO.git;a=blobdiff_plain;f=Arbres%2FArbreBinaire.java;h=89fccc761ccfcfe98c352e1c027e9e5c25c00cb9;hp=a99b47a201e1b2f04662394ac780b7eb9dfaa6b8;hb=b5d597d83099c155e21695da51bbefeba72c7dc9;hpb=5b834ba1cac88e2d82f3f7c0abc520763ae4ecd3 diff --git a/Arbres/ArbreBinaire.java b/Arbres/ArbreBinaire.java index a99b47a..89fccc7 100644 --- a/Arbres/ArbreBinaire.java +++ b/Arbres/ArbreBinaire.java @@ -1,64 +1,20 @@ /** * Binary tree class. - * A binary tree is a ordered value tree with only two childs by node + * A binary tree is a ordered value tree with only two childs per node */ public class ArbreBinaire { - - private class IntNode { - private int data; - private IntNode leftIntNode; - private IntNode rightIntNode; - - IntNode(int value) { - setData(value); - setLeftNode(null); - setRightNode(null); - } - - IntNode(int value, IntNode leftNode, IntNode rightNode) { - setData(value); - setLeftNode(leftNode); - setRightNode(rightNode); - } - - private int getData() { - return data; - } - - private void setData(int value) { - data = value; - } - - private IntNode getLeftNode() { - return leftIntNode; - } - - private void setLeftNode(IntNode leftNode) { - leftIntNode = leftNode; - } - - private IntNode getRightNode() { - return rightIntNode; - } - - private void setRightNode(IntNode rightNode) { - rightIntNode = rightNode; - } - - } - - private IntNode rootNode; + private Node rootNode; ArbreBinaire() { setRootNode(null); } - private void setRootNode(IntNode node) { + private void setRootNode(Node node) { rootNode = node; } - private IntNode getRootNode() { + private Node getRootNode() { return rootNode; } @@ -66,10 +22,11 @@ public class ArbreBinaire { return (getRootNode() == null); } - private IntNode inserer_rec(IntNode currentNode, int value) { + private Node inserer_rec(Node currentNode, int value) { if (currentNode == null) { - return new IntNode(value); - } else if (value < currentNode.getData()) { + return new Node(value); + } + if (value < currentNode.getData()) { currentNode.setLeftNode(inserer_rec(currentNode.getLeftNode(), value)); } else if (value > currentNode.getData()) { currentNode.setRightNode(inserer_rec(currentNode.getRightNode(), value)); @@ -81,10 +38,11 @@ public class ArbreBinaire { setRootNode(inserer_rec(rootNode, value)); } - private IntNode supprimer_rec(IntNode currentNode, int value) { + private Node supprimer_rec(Node currentNode, int value) { if (currentNode == null) { return null; - } else if (value == currentNode.getData()) { + } + if (value == currentNode.getData()) { if (currentNode.getLeftNode() == null && currentNode.getRightNode() == null) { return null; } else if (currentNode.getRightNode() == null) { @@ -115,7 +73,7 @@ public class ArbreBinaire { supprimer_rec(rootNode, value); } - private boolean hasDataRec(IntNode currentNode, int value) { + private boolean hasDataRec(Node currentNode, int value) { if (currentNode == null) { return false; } @@ -129,11 +87,11 @@ public class ArbreBinaire { return hasDataRec(rootNode, value); } - private int findSmallestData(IntNode node) { + private int findSmallestData(Node node) { return node.getLeftNode() == null ? node.getData() : findSmallestData(node.getLeftNode()); } - private void afficher_rec(IntNode currentNode) { + private void afficher_rec(Node currentNode) { if (currentNode != null) { afficher_rec(currentNode.getLeftNode()); System.out.print(currentNode.getData() + " "); @@ -146,12 +104,10 @@ public class ArbreBinaire { System.out.println(); } - private void afficher_arbre_rec(IntNode currentNode, int column) { - int i; - + private void afficher_arbre_rec(Node currentNode, int column) { if (currentNode != null) { afficher_arbre_rec(currentNode.getRightNode(), column + 1); - for (i = 0; i < column; i++) { + for (int i = 0; i < column; i++) { System.out.print(" "); } System.out.println(currentNode.getData()); @@ -164,27 +120,39 @@ public class ArbreBinaire { } public static void main(String[] args) { - ArbreBinaire Btree = new ArbreBinaire(); + ArbreBinaire bTree = new ArbreBinaire(); + + bTree.inserer(2); + bTree.inserer(6); + bTree.inserer(4); + bTree.inserer(5); + bTree.inserer(1); + bTree.inserer(0); + + bTree.afficher(); + bTree.afficher_arbre(); - Btree.inserer(2); - Btree.inserer(6); - Btree.inserer(4); - Btree.inserer(5); - Btree.inserer(1); - Btree.inserer(0); + bTree.supprimer(4); - Btree.afficher(); - Btree.afficher_arbre(); + bTree.afficher(); + bTree.afficher_arbre(); - Btree.supprimer(4); + bTree.supprimer(6); - Btree.afficher(); - Btree.afficher_arbre(); + bTree.afficher(); + bTree.afficher_arbre(); - Btree.supprimer(6); + bTree.inserer(2); + bTree.inserer(7); + bTree.inserer(3); + bTree.inserer(9); + bTree.inserer(11); + bTree.inserer(10); + bTree.inserer(8); + bTree.inserer(4); - Btree.afficher(); - Btree.afficher_arbre(); + bTree.afficher(); + bTree.afficher_arbre(); } }