📅  最后修改于: 2023-12-03 14:58:32.898000             🧑  作者: Mango
GATE是印度举办的计算机科学和信息技术领域的全国性考试,旨在选拔最优秀的人才进入印度顶尖高校和研究机构。本文将重点介绍GATE-IT-2004考试中的问题22,该问题涉及到编程和算法的知识。
问题22要求编写一个程序,实现一个二进制搜索树(Binary Search Tree)。具体要求如下:
程序需要实现以下几个方法:
BST()
:构造方法,用于创建一棵空的二进制搜索树。insert(int elem)
:向二进制搜索树中插入一个元素。inorder()
:按照中序遍历顺序输出二进制搜索树中的元素。输入是一系列整数,用空格分隔。以-1作为输入的结束符号。
程序需要将输入的整数依次插入到二进制搜索树中,并且按照中序遍历的顺序输出二叉搜索树中的元素。
注意:输入的整数不会重复,且所有整数均大于等于1。
class Node {
int data;
Node left, right;
public Node(int item) {
data = item;
left = right = null;
}
}
class BST {
Node root;
BST() {
root = null;
}
void insert(int elem) {
root = insertRec(root, elem);
}
private Node insertRec(Node root, int elem) {
if (root == null) {
root = new Node(elem);
return root;
}
if (elem < root.data)
root.left = insertRec(root.left, elem);
else if (elem > root.data)
root.right = insertRec(root.right, elem);
return root;
}
void inorder() {
inorderRec(root);
}
private void inorderRec(Node root) {
if (root != null) {
inorderRec(root.left);
System.out.print(root.data + " ");
inorderRec(root.right);
}
}
}
public class Main {
public static void main(String[] args) {
BST bst = new BST();
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一系列整数,以-1作为结束标志:");
int num = scanner.nextInt();
while (num != -1) {
bst.insert(num);
num = scanner.nextInt();
}
System.out.println("中序遍历结果为:");
bst.inorder();
}
}
将上述代码保存为一个Java文件,例如BinarySearchTree.java
。
使用Java编译器编译代码:javac BinarySearchTree.java
。
运行程序:java Main
。
按照提示输入一系列整数,以-1作为结束标志。
程序将输出按中序遍历顺序排序后的整数列表。
本文介绍了GATE-IT-2004考试中的问题22,该问题要求编写一个二进制搜索树,并按照中序遍历的顺序输出树中的元素。通过编写相应的类和方法,可以解决这个问题。以上提供的Java代码是一个简单的示例,可根据实际需求进行修改和扩展。