我有一个学校项目要求我在JAVA中构建一个包含学校课程目录的数据库模拟器。
我有一切正常但搜索。搜索方法需要首先搜索索引(这是一个BSTree ADT)并返回一个int数组(索引到数据库数组中的完整行数据),如果有的话。
如果您熟悉SQL术语,我只需要支持模仿SQL中“LIKE”说明符的搜索查询,即“LIKE'Intro%'”,它可以返回与谓词“Intro”匹配的多个结果
有没有办法以递归方式执行此操作,就像在这样遍历Tree inOrder一样?
这是我的初稿尝试:
public int[] select(IndexNode localRoot, String selectQuery, int[] resultSet) {
if (localRoot != null) {
resultSet = select(localRoot.getLeftChild(), selectQuery, resultSet);
// get the nth number of characters from the data
String thisResult = localRoot.getData().substring(0, selectQuery.length());
// and compare it to the searchQuery
if (selectQuery.compareToIgnoreCase(thisResult) == 0)
// add this current local root's index to the return int array
resultSet = select(localRoot.getRightChild(), selectQuery, resultSet);
} // End root not null
return resultSet;
} // End select() method