Java 树的构建和有序遍历:>;两个儿子
我需要从Access数据库中读取成员列表。每个成员都由另一个成员赞助。每个记录都包含他们的赞助人的ID和他们自己的ID。我现在必须能够有效地读取会员名册并按缩进打印出来,以显示谁是世卫组织的赞助人 我觉得最有效的方法是构建一棵树,然后进行有序遍历 我的输出应该如下所示:Java 树的构建和有序遍历:>;两个儿子,java,ms-access,tree,ordered-tree,Java,Ms Access,Tree,Ordered Tree,我需要从Access数据库中读取成员列表。每个成员都由另一个成员赞助。每个记录都包含他们的赞助人的ID和他们自己的ID。我现在必须能够有效地读取会员名册并按缩进打印出来,以显示谁是世卫组织的赞助人 我觉得最有效的方法是构建一棵树,然后进行有序遍历 我的输出应该如下所示: Mary Jones Kim Smith Rena Brown Joan Brown Patsy Brown Howard Sharp Ken Johnson
Mary Jones
Kim Smith
Rena Brown
Joan Brown
Patsy Brown
Howard Sharp
Ken Johnson
Peter Pan
Wendy
Hook
Davey Crocket
…
订单将以ID号为准。我所找到的一切都是针对一个只有一个左右子的二叉树。如你所见,这对我不起作用
首选的解决方案是Java,但我会很感激能得到的一切
邦妮这是我想到的。它定义了一个名为
ListSponsoredMembers
的函数,并递归调用该函数以构建列表:
import java.sql.*;
公开课赞助{
静态连接接头;
公共静态void main(字符串[]args){
试一试{
conn=DriverManager.getConnection(
“jdbc:ucanaccess://C:/Users/Public/Database1.accdb;”;
PreparedStatement ps1=conn.prepareStatement(
从成员中选择memberID、memberName+
“如果赞助商ID为空,则按memberID排序”);
结果集rs=ps1.executeQuery();
while(rs.next()){
ListSponsoredMembers(rs.getInt(“memberID”)、rs.getString(“memberName”)、0;
}
ps1.close();
康涅狄格州关闭();
}捕获(例外e){
e、 printStackTrace();
}
}
私有静态void ListSponsoredMembers(整数memberID、字符串memberName、整数recursionLevel){
for(整数i=0;i
对于如下所示的[Members]表
memberID memberName赞助商ID
-------- ------------- ---------
1玛丽·琼斯
2金史密斯1
3丽娜·布朗1
4琼·布朗3
5帕西·布朗4
6霍华德夏普1
7肯·约翰逊1
8彼得·潘
9温迪8
10钩8
11戴维·克罗克特
…它产生以下输出:
玛丽·琼斯
金史密斯
丽娜·布朗
琼·布朗
帕西·布朗
霍华德·夏普
肯·约翰逊
彼得潘
温迪
钩子
戴维·克罗基特
那么,问题是什么呢?请看这里的想法:Gord,你的剧本很优雅,很有魅力。非常感谢你。