求非二叉树的深度优先遍历算法(急需)
我已经在内存中构建了一个数,   
 其数据结构   
 Object[] 
          | 
          |-   Object[0]=Name 
          |-   Object[1]=new   ArrayList(); 
                               |    
                   Object[1].getElement(i)=new   Object[2];                  
                i=0..n     
 求其遍历算法!!(急需)   
------解决方案--------------------你的数据结构好让人费解,我按自己理解的,遍历只是打印叶子节点,根节点没有存储值,只是存储子节点的引用
简单起见,以下是伪代码,这种遍历我感觉还是用第归容易实现,参考一下:
// 遍历树“姑且叫做树吧“的主程序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)