求非二叉树的深度优先遍历算法(急需)

baofish 2007-02-08 06:20:49
我已经在内存中构建了一个数,

其数据结构

Object[]
|
|- Object[0]=Name
|- Object[1]=new ArrayList();
|
Object[1].getElement(i)=new Object[2];

i=0..n


求其遍历算法!!(急需)

...全文
999 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
apm70plus 2008-04-22
  • 打赏
  • 举报
回复
你的数据结构好让人费解,我按自己理解的,遍历只是打印叶子节点,根节点没有存储值,只是存储子节点的引用
简单起见,以下是伪代码,这种遍历我感觉还是用第归容易实现,参考一下:
// 遍历树“姑且叫做树吧“的主程序void searchTree(Object note) {
if note is Object[] // 如果节点是数组,调用数组遍历子程序

searchArray((Object[]) note);
else if note is ArrayList

searchArrayList((ArrayList) note); // 如果节点是连表,调用连表遍历子程序
else // 否则定是叶子节点,打印输出。

println(note);
}
// 数组遍历子程序
void searchArray(Object[] array) {
for i = 0 to array.length
searchTree(Object[i]); // 以数组中每个子节点为根节点调用遍历主程序}
// 连表遍历子程序

void searchArrayList(ArrayList list) {
for i = 0 to list.size
searchTree(list.get(i)); // 以连表中每个子节点为根节点调用遍历主程序
}


至于判断对象类型,也许可以用Class.isInstance(Object obj)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧