Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
import java.lang.reflect.Array; import java.util.Arrays; public class Main { public static void main(String[] args) { int[] array = {1, 2, 3, 4,5, 6, 7}; Arrays.sort(array); BST tree = BST.createBSTFromArray(array); tree.inorder(); } } class BST { static class Node { int info; Node left, right; Node(int info) { this.info = info; left = null; right = null; } } Node root; BST() { root = null; } void insert(int value) { root = insertRecursive(root, value); } Node insertRecursive(Node node, int value) { if(node == null) { node = new Node(value); return node; } if(value < node.info) { node.left = insertRecursive(node.left, value); } else if(value > node.info) { node.right = insertRecursive(node.right, value); } return node; } void delete(int value) { root = deleteRecursive(root, value); } Node deleteRecursive(Node node, int value) { if(node == null) { return null; } if(value < node.info) { node.left = deleteRecursive(node.left, value); } else if(value > node.info) { node.right = deleteRecursive(node.right, value); } else if(value == node.info){ // sme go nasle, treba da go izbriseme if(node.left == null) { return node.right; } else if(node.right == null) { return node.left; } node.info = findMinimumValue(node.right); node.right = deleteRecursive(node.right, node.info); } return node; } int findMinimumValue(Node node) { int result = node.info; while(node.left != null) { result = node.left.info; node = node.left; } return result; } void inorder() { inorderRecursive(root); } void inorderRecursive(Node node) { if(node == null) { return; } inorderRecursive(node.left); System.out.println(node.info + " "); inorderRecursive(node.right); } public static BST createBSTFromArray(int[] array) { BST newTree = new BST(); if(array.length > 0) { newTree.root = createBSTFromArrayRecursive(array, 0, array.length - 1); } return newTree; } public static Node createBSTFromArrayRecursive(int[] array, int L, int R) { if(L > R) { return null; } int middle = (L + R) / 2; Node root = new Node(array[middle]); root.left = createBSTFromArrayRecursive(array, L, middle - 1); root.right = createBSTFromArrayRecursive(array, middle + 1, R); return root; } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)