我已经在内存中构建了一个数,其数据结构Object[]
   |
   |- Object[0]=Name
   |- Object[1]=new ArrayList();
          | 
      Object[1].getElement(i)=new Object[2];
     
     i=0..n
求其遍历算法!!(急需)

解决方案 »

  1.   

    你的数据结构好让人费解,我按自己理解的,遍历只是打印叶子节点,根节点没有存储值,只是存储子节点的引用
    简单起见,以下是伪代码,这种遍历我感觉还是用第归容易实现,参考一下:
    // 遍历树“姑且叫做树吧“的主程序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)