Блог за програмиране и забавление
Java
Обхождане на двоично дърво в Java
0Как се реализира двоично дърво можете да видите в книгата на Светлин Наков, а ето как да се обходи по три начина като 2 не са реализирани в книгата.
Съответно ЛДК (Ляво-Корен-Дясно/Pre-order), КЛД (Корен-Ляво-Дясно/In-order), ЛДК (Ляво-Дясно-Корен/Post-order)
public void printPreOrder(BinaryTreeNode<T> root) { if (root == null) { return; } printPreOrder(root.getLeftChild()); System.out.print(root.value + " "); printPreOrder(root.getRightChild()); } public void printPreOrder() { printPreOrder(this.root); } public void printInOrder(BinaryTreeNode<T> root) { if (root == null) { return; } System.out.print(root.value + " "); printInOrder(root.getLeftChild()); printInOrder(root.getRightChild()); } public void printInOrder() { printInOrder(this.root); } public void printPostOrder(BinaryTreeNode<T> root) { if (root == null) { return; } printPostOrder(root.getLeftChild()); if (root.leftChild != null) { System.out.print(root.leftChild.value + " "); } if (root.rightChild != null) { if (root.rightChild.leftChild != null) { printPostOrder(root.rightChild); } System.out.print(root.rightChild.value + " "); } } public void printPostOrder() { printPostOrder(this.root); System.out.println(this.root.value); }