/ / Как да намерите най-малката стойност в двоично дърво за търсене? - java, бинарно-дърво за търсене

Как да намерите най-малка стойност в бинарно дърво за търсене? - java, бинарно-търсене-дърво

Трябва да напиша клиентски метод, който връща препратка към информацията в възела с най-малката стойност в двоично дърво за търсене, използвайки дадените кодове.

Тук е ZIP FILE

Трябва да използвам този подпис на метода:

Мин. Голф (дърво на BinarySearchTree)

Ето какво написах:

   Golfer min(BinarySearchTree<Golfer> tree)
{
int treeSize = tree.reset(BinarySearchTree.INORDER);
int numNodes = 0;
for(int count = 1; count <= treeSize; count++)
{
if((tree.getNext(BinarySearchTree.INORDER).compareTo(maxValue)) <= 0)
numNodes = numNodes + 1;
}
return numNodes;
}

Отговори:

1 за отговор № 1

Предполагам, че търсите Голфъра с минимален резултат

Метод 1: О (lg (n)) време, защото тече надолу от лявата страна на дървото

public Golfer min(BinarySearchTree<Golfer> tree) {
BSTNode<Golfer> node = tree.root;
if (node == null) {
return null;
}
while (node.getLeft() != null) {
node = node.getLeft();
}
return node.getInfo();
}


Метод 2: O (n) време, защото минава през всички елементи в дървото, за да създаде ред за преминаване в ред

public Golfer min2(BinarySearchTree<Golfer> tree) {
int treeSize = tree.reset(BinarySearchTree.INORDER);
if (treeSize <= 0) {
return null;
}
return tree.getNext(BinarySearchTree.INORDER);
}

Ето някои кодове за тестване на кода по-горе

public static void main(String[] args) {
BinarySearchTree<Golfer> bst = new BinarySearchTree<Golfer>();
bst.add(new Golfer("A", 10));
bst.add(new Golfer("B", 12));
bst.add(new Golfer("C", 8));
bst.add(new Golfer("D", 9));
bst.add(new Golfer("E", 3));

Golfer min = new Test().min(bst);
//Golfer min = new Test().min2(bst);
if (min != null) {
System.out.println("min name: " + min.name + ", min score: " + min.score);
} else {
System.out.println("Empty tree");
}
}

изход:

min name: E, min score: 3