zoukankan      html  css  js  c++  java
  • java实现显示为树形

    ** 显示为树形**

    树形结构应用十分广泛。

    下面这段代码根据用户添加的数据,在内存中构建一个逻辑上等价的树形结构。

    通过ShowTree() 可以把它显示为控制中的样子。

    其中:
    a.add(‘a’, ‘b’);
    a.add(‘b’, ‘e’);
    表示:‘b’ 作为 ‘a’ 的孩子节点;‘e’ 作为 'b’的孩子节点。
    如代码中给出的示例数据,输出结果应该为:

    a–b--e
    | |–f--j
    | |–k
    |–c
    |–d--g–h
    |–i

    请阅读下面的代码,填写缺失的部分(下划线部分)。

    注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
    直接写在题面中不能得分。

    import java.util.*;
    
    class MyTree
    {
        private Map map = new HashMap();
        
        public void add(char parent, char child)
        {
            List<Character> t = (List<Character>)map.get(parent);
            if(t==null)
            {
                t = new Vector<Character>();
                ____________________;  // 填空1
            }
            t.add(child);
        }
        
        public List<Character> getChild(char x)
        {
            return (List<Character>)map.get(x);
        }
    }
    
    public class My
    {
        public static List<String> showTree(MyTree tree, char x)
        {
            List<Character> t = tree.getChild(x);
            
            List<String> r = new Vector<String>();
            
            if(t==null)
            {
                r.add("" + x);
                return r;
            }
                    
            for(int i=0; i<t.size(); i++)
            {
                List<String> ri = showTree(tree, t.get(i));
                for(int j=0; j<ri.size(); j++)
                {
                    String pre = "|  ";
                    if(j==0)
                    {
                        if(i==0)
                            pre = x + "--";
                        else 
                            pre = "|--";
                    }
                    else
                    {
                        if(i==__________________)    // 填空2
                            pre = "   ";
                        else
                            pre = "|  ";
                    }
                    
                    r.add(pre + ri.get(j));
                }
            }
            
            return r;
        }
        
        public static void main(String[] args)
        {
            MyTree a = new MyTree();
            a.add('a', 'b');
            a.add('b', 'e');
            a.add('b', 'f');
            a.add('a', 'c');
            a.add('a', 'd');
            a.add('d', 'g');
            a.add('d', 'i');
            a.add('g', 'h');
            a.add('f', 'j');
            a.add('f', 'k');
            
            List<String> lst = showTree(a, 'a');
            for(int i=0; i<lst.size(); i++)
            {
                System.out.println(lst.get(i));
            }
        }
    }
    
    
    map.put(parent, t)
    i== t.size()-1
    
  • 相关阅读:
    C#——数组
    javaScript数组移除指定对象或下标i,数组去重
    css实现左边div自适应宽度,右边宽度适应左边
    最短JS判断是否为IE6(!-[1,]&&!window.XMLHttpRequest)(转)
    java 获取微信 页面授权 获取用户openid
    鼠标滑轮滚动事件
    浏览器后退(返回)事件捕获
    一些常用的原生js方法(函数)
    简单瀑布流实现
    XMLHttpRequest对象的创建与用法
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13076525.html
Copyright © 2011-2022 走看看