现代化WEB项目中少不了要用到报表展现.对于中国式报表来说,复杂表头是必不要可少的一种表现形式。

形如下面的表格:

 合并四
 合并三  合并二
 合并一 单元三
 单元一  单元二  单元四  单元五

 如何通过数据库表示这样一个复杂表头呢?其实他就是一个多叉树.在数据库里表达出一棵树信息

很简单吧.再者就是展现到页面时每一个树结点的Colspan,Rowspan怎么计算呢.Colspan比较简

单就是树的宽度.说白了就是叶结点的个数(因为叶结点的宽度都是1).Rowspan似乎不容易获得.

仔细看的话,你会发现当前结点Rowspan就是父结点为根的子树深度减去自身为根的子树的深度.

这样问题就解决了.

 多叉树求树深的算法:

 getTreeDepth(TreeNode root) {
        if (root == null) {
            
return 0;
        }
        Iterator
<TreeNode> it = root.getChildList().iterator();
        List
<Integer> depths = new ArrayList<Integer>();
        
while (it.hasNext()) {
            TreeNode node 
= it.next();
            depths.add(getTreeDepth(node));
        }
        Collections.sort(depths);
        
if (depths.isEmpty()) {
            
return 1;
        } 
else {
            
return depths.get(depths.size() - 1+ 1;
        }
    }

相关文章:

  • 2021-12-24
  • 2022-12-23
  • 2021-12-28
  • 2022-12-23
  • 2022-01-09
  • 2022-01-03
  • 2021-07-28
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-07
  • 2021-06-07
  • 2022-12-23
  • 2021-11-27
相关资源
相似解决方案