Skip to content

wwwroth/go-binary-search-tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Go Binary Search Tree

This is a project written in go that accepts a binary tree represented in JSON and outputs an ASCII diagram for it as well as if it's a valid BST or not. You can also generate valid BSTs with a defined height.

Usage

Valid Trees

go run main.go -validate '{"value":10,"left":{"value":5,"left":{"value":3},"right":{"value":7}},"right":{"value":15,"right":{"value":18}}}'
        ┌── 18
    ┌── 15
┌── 10
        ┌── 7
    └── 5
        └── 3
2024/03/05 19:58:01 The binary tree is a valid BST

Invalid Tree

go run main.go -tree '{"value":10,"left":{"value":5,"left":{"value":3},"right":{"value":7}},"right":{"value":15,"right":{"value":1}}}'
        ┌── 1
    ┌── 15
┌── 10
        ┌── 7
    └── 5
        └── 3
2024/03/05 19:57:24 The binary tree is not a valid BST

Generate JSON for a valid BST of N height

go run main.go -generate 4
{
  "value": 8,
  "left": {
    "value": 0,
    "left": {
      "value": -4,
      "left": {
        "value": -6
      },
      "right": {
        "value": -2
      } 
    },
    "right": {
      "value": 4,
      "left": {
        "value": 2
      },
      "right": {
        "value": 6
      }
    }
  },
  "right": {
    "value": 16,
    "left": {
      "value": 12,
      "left": {
        "value": 10
      },
      "right": {
        "value": 14
      }
    },
    "right": {
      "value": 20,
      "left": {
        "value": 18
      },
      "right": {
        "value": 22
      }
    }
  }
}

About

Validating and generating BST using Go.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages