BTree2.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Node class representing each node in the BST
  2. class TreeNode {
  3. int value;
  4. TreeNode left, right;
  5. TreeNode(int item) {
  6. value = item;
  7. left = right = null;
  8. }
  9. }
  10. // BinarySearchTree class with basic operations
  11. class BinarySearchTree {
  12. TreeNode root;
  13. // Method to insert a new value
  14. void insert(int value) {
  15. root = insertRec(root, value);
  16. }
  17. // Recursive method to insert a new value
  18. TreeNode insertRec(TreeNode node, int value) {
  19. if (node == null) {
  20. node = new TreeNode(value);
  21. return node;
  22. }
  23. if (value < node.value) {
  24. node.left = insertRec(node.left, value);
  25. } else if (value > node.value) {
  26. node.right = insertRec(node.right, value);
  27. }
  28. return node;
  29. }
  30. // Method to perform an in-order traversal
  31. void inorder() {
  32. inorderRec(root);
  33. }
  34. // Recursive method to perform in-order traversal
  35. void inorderRec(TreeNode node) {
  36. if (node != null) {
  37. inorderRec(node.left);
  38. System.out.print(node.value + " ");
  39. inorderRec(node.right);
  40. }
  41. }
  42. }
  43. // Main class to test the BinarySearchTree implementation
  44. public class BTree2 {
  45. public static void main(String[] args) {
  46. BinarySearchTree bst = new BinarySearchTree();
  47. bst.insert(30);
  48. bst.insert(50);
  49. bst.insert(20);
  50. bst.insert(40);
  51. bst.insert(70);
  52. bst.insert(60);
  53. bst.insert(80);
  54. System.out.println("In-order traversal of the BST:");
  55. bst.inorder();
  56. }
  57. }