求树型结构原理或代码

时间:2022-01-13 12:58:56
A
  ____|___
  |      |
  B      C
__|__  __|__
|   |  |   |
D   E  F   G
求这种树型结构思路,有代码最好。谢谢了。

8 个解决方案

#1


递归

#2


我要进行BCD或BCE或BCF或BCF或BCG,只在满足这些条件的,A就加1,然后继续往下判断,谁有这样更好的思路?

#3


这东西,我也正在做,方法有很多种的,正在选方案中,我把几个简单的列出来一下,你自己研究吧,比较简单:
1、在现行数据库的基础上,采用“父-子”方式,比如在每个记录都加一个fartherID字段,用于记录它是谁的子目录,这样层次就出来了,只不过这样的话有两个问题:
      ·程序的算法要做对,不然你想要是ID乱了那怎么办,所以算法上一定要研究好。
      ·在算法的同时,为了更安全,我加进了一个扫描程序,定期对ID进行自动检查,发现错误可以根据日志很容易自行恢复。
      ·很显然,这种方法,如果要满足你的BCD、BCE这样的操作,在SQL层要做么就是代码复杂,要么就是再加其它字段或其它方法。

其它的方法跟这个大同小意了,你自己看吧,我们最近在做的就是用面象对象的数据库,那个实现这个就要简单一些。

#4


数据结构+算法。
一种做法:每个编号,规则:祖先编号+自己的排号
比如根是  aa
长子:aa_aa   次子:aa_bb
长孙:aa_aa_aa   次子的长子:aa_bb_aa

按照这个编码做的树菜单,代码短小。
参照:
http://superdullwolf.cnzone.net/index.asp
图片菜单例子

#5


采用aa_aa这样编码,不用数字,主要考虑了排序和广度的问题
数字如果按照字符排序不能达到想要的目的,而且两个数字最多表示99的广度,两个字母就可以扩展到
26×26甚至可以把大写字符也排进去,一般的应用足够。

#6


当下一级目录存在二个,且下一级目录中其中一个还有下一级目录,当前这个目录的一个值加1,这样一直循环下去,要怎么做?

#7


http://asp2004.net/temp/treemenu

#8


典型的二叉树

#1


递归

#2


我要进行BCD或BCE或BCF或BCF或BCG,只在满足这些条件的,A就加1,然后继续往下判断,谁有这样更好的思路?

#3


这东西,我也正在做,方法有很多种的,正在选方案中,我把几个简单的列出来一下,你自己研究吧,比较简单:
1、在现行数据库的基础上,采用“父-子”方式,比如在每个记录都加一个fartherID字段,用于记录它是谁的子目录,这样层次就出来了,只不过这样的话有两个问题:
      ·程序的算法要做对,不然你想要是ID乱了那怎么办,所以算法上一定要研究好。
      ·在算法的同时,为了更安全,我加进了一个扫描程序,定期对ID进行自动检查,发现错误可以根据日志很容易自行恢复。
      ·很显然,这种方法,如果要满足你的BCD、BCE这样的操作,在SQL层要做么就是代码复杂,要么就是再加其它字段或其它方法。

其它的方法跟这个大同小意了,你自己看吧,我们最近在做的就是用面象对象的数据库,那个实现这个就要简单一些。

#4


数据结构+算法。
一种做法:每个编号,规则:祖先编号+自己的排号
比如根是  aa
长子:aa_aa   次子:aa_bb
长孙:aa_aa_aa   次子的长子:aa_bb_aa

按照这个编码做的树菜单,代码短小。
参照:
http://superdullwolf.cnzone.net/index.asp
图片菜单例子

#5


采用aa_aa这样编码,不用数字,主要考虑了排序和广度的问题
数字如果按照字符排序不能达到想要的目的,而且两个数字最多表示99的广度,两个字母就可以扩展到
26×26甚至可以把大写字符也排进去,一般的应用足够。

#6


当下一级目录存在二个,且下一级目录中其中一个还有下一级目录,当前这个目录的一个值加1,这样一直循环下去,要怎么做?

#7


http://asp2004.net/temp/treemenu

#8


典型的二叉树