可以从两方面判断
一是从父结点,首先判断有无子结点显示,再判断本身是否显示
二是从子结点,判断自身显示后强制显示父结点
其实就是将父结点的状态放入一个变量,判断完子结点后再来决定这个变量的值

解决方案 »

  1.   

    主要是考虑性能,有没有好的算法?
      

  2.   

    好的算法是
    每个结点都有一个是否显示的标志,当做权限设置的时侯,任何一个结点设置可视都去更新所有父结点标志为可视。当显示的时侯,直接根据标志去确定是否显示了。这样更新权限时麻烦了,但是显示菜单比更新权限更频繁,这样可能达到优化效果的
      

  3.   

    预编节点索引。
    使用递归遍历。