问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
package sheji;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import sheji.RecordNode;
import sheji.BSTree;
import sheji.KeyType;
import sheji.ElementType;
public class action {
public static <ReacordNode> void main(String[] args) {
boolean flag = true;
while (flag) {
System.out.println("=================================================");
System.out.println("请输入下列数字选择相应的操作:");
System.out.println("1.建立家谱成员信息");
System.out.println("2.查找家谱成员信息");
System.out.println("3.删除家谱成员信息");
System.out.println("4.退出");
System.out.println("=================================================");
System.out.print("输入的数字为:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
BSTree bstree=new BSTree();
switch (num) {
case 1:
String[]item= {"小明",
"小张",
"小李"};
int[]k= {1002, 1001,1003}; //关键字数组
KeyType[] key = new KeyType[k. length]; //关键字数组
ElementType[]elem=new ElementType[k.length]; //记录数据数组
System.out.println("原序列:");
for (int i = 0; i<k. length; i++){
key[i] = new KeyType(k[i]); //创建关键字对象
elem[i]= new ElementType(item[i]); //创建记录数据对象
if(bstree.insertBST(key[i],elem[i])) { //若插入对象成功
System.out.println("["+key[i]+","+elem[i]+"]");
}
}
break;
case 2:
System.out.println("\n 中序遍历二叉排序树");
bstree.inOrderTraverse(bstree.root);
System.out.println();
KeyType keyvalue =new KeyType();
keyvalue.key=1002;
RecordNode found =(RecordNode)bstree.searchBST(keyvalue);
if(found!=null) {
System.out.println("按编号查找:"+keyvalue+",成功!对应家族成员为:"+found.element);
}else {
System.out.println("按编号查找:"+keyvalue+",失败!");
}
keyvalue.key=1003;
found=(RecordNode)bstree.searchBST(keyvalue);
if(found!=null) {
System.out.println("按编号查找:"+keyvalue+",成功!对应家族成员为:"+found.element);
}else {
System.out.println("按编号查找:"+keyvalue+",失败!");
}
break;
case 3:
bstree.inOrderTraverse(bstree.root);
System.out.println();
KeyType keyvalue1 =new KeyType();
keyvalue1.key=1002;
found=(RecordNode)bstree.removeBST(keyvalue1);
if(found!=null) {
System.out.println("删除编号:"+keyvalue1+",成功删除:"+found.element+"!");
}else {System.out.println("删除编号:"+keyvalue1+",失败!");
}
break;
default:
flag = false;
System.out.println("退出成功");
break;
}
}
}
}
运行结果及报错内容
我的解答思路和尝试过的方法
是不是算法弄错了
我想要达到的结果
能够查找到并且删除对应对象