关于权限与数据结构的问题

zjb211434 2009-08-19 02:58:53
大家帮我想想有什么数据结构或者算法可以帮我实现权限码的包含与被包含关系。
例如:我有三个权限码 1管理全国 2管理本省 3管理本市 它们三个之间存在的关系就是1包含2包含3.
我现在要做的是些一个通用的方法可以这样判断,比如我压迫判断是否有本市的权限,那么我传入权限码3
这个方法会自懂去判断是否有管理本市这个权限,如果没有再去判断是否有管理本省的权限,如果没有再去判断全国,
只有这三个有一个就返回true。要用什么结构来保存类似关系的权限码能比较好实现这样的效果
...全文
113 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程农场 2009-08-21
  • 打赏
  • 举报
回复
我可能可以帮到你
联系方式:
e-mail:freeland007@163.com
QQ: 723273055

zjb211434 2009-08-21
  • 打赏
  • 举报
回复
问题还没解决,郁闷,自己顶一个
  • 打赏
  • 举报
回复
感觉楼主没有说清楚要干什么,
如果仅仅是判断三个权限的先后关系应该会有很多可行的办法。

楼主能不能把输入、输出说清楚点?


基于上面的话给出一个可能的解决方式。
1、树的结构。既然写在文件里是树的结构,在实际中你也可以用树的结构。父节点权限大于子节点权限或者相反。
2、通过继承来实现结构。有一个设计模式叫做chain of responsiblity,楼主可以百度一下,窃以为可能可行。
zjb211434 2009-08-19
  • 打赏
  • 举报
回复
写死就么作用了。。。郁闷
hyram 2009-08-19
  • 打赏
  • 举报
回复
这个似乎只能写死。
zjb211434 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hyram 的回复:]
1包含2包含3的话 保存为111 011 001 000不就可以了
[/Quote]
现在就是不知道怎么保存 1包含2包含3 这个关系啊,我的意思是先有一个保存的结构,然后再根据这个结构生成
111 011 001 000
hyram 2009-08-19
  • 打赏
  • 举报
回复
1包含2包含3的话 保存为111 011 001 000不就可以了
zjb211434 2009-08-19
  • 打赏
  • 举报
回复
不过现在的问题是我的数据并不能保存成
<tree>
<node name="1管理全国">
<node name="2管理本省"/>
<node name="3管理本市"/>
</node>
</tree> 这样的结构,只能放在数组或者结构里面,所以不知道要怎么保存好,就是不能放在文件里面
hyram 2009-08-19
  • 打赏
  • 举报
回复
生成的时候也是用位运算设置(或运算),有全国或111,全省或011,全市或001.
zjb211434 2009-08-19
  • 打赏
  • 举报
回复
我的意思是我需要一个结构和算法来生成对应的二进制关系码,比如我配置一个结构
<tree>
<node name="1管理全国">
<node name="2管理本省"/>
<node name="3管理本市"/>
</node>
</tree>
然后算法会自动为我生成二进制码 1管理全国:011 2管理本省:010 3管理本市:001
这样我就可以判断 011 & 010 = 010 也就是 1管理全国 包含 2管理本省
zjb211434 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hyram 的回复:]
3个2进制位,用位运算判断
[/Quote]
要怎么生成2进制位呢?这个方法我也有想过,但是不知道如何生成2进制的值
hyram 2009-08-19
  • 打赏
  • 举报
回复
3个2进制位,用位运算判断

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧