vb.net 递归 vb.net 递归

来源:百度知道 编辑:UC知道 时间:2024/05/24 02:18:11
001------------------------------------第一层
001001---------------------------------第二层
001001001------------------------------第三层
001001002------------------------------第三层
001001003------------------------------第三层
001001003001---------------------------第四层
001002---------------------------------第二层
001002001------------------------------第三层
002------------------------------------第一层
002001---------------------------------第二层

以上是access数据库里的字段里的数字,想根据它们的排列
规律(3个递增或3个递减),用treeview做出来。听说得用
递归的方法,本人是初学者,对递归的方法不是很了解,希望
好心的大哥给予解答,谢谢!!!
前提是不能在access里增加或减少字段。。。
详细的问题说明,请参照:
http://iask.sina.com.cn/b/13937211.html

大哥,首先对你的回答表示感谢!!
我用的数据库的层数是不一样的,而且数字的递增或者递减也不一样,不过都是按照3的倍数来递增或递减。
比方说第一行是001001第二行有可能是001001001001001
这样的数据结构,不知道用您教我的方法能行吗?真的不用递归吗?请指教。。。
对对对对,就是不知道节数。。。
现在有的这个数据库的结构是做书的

这种不要用递归,知道关键字长度,知道节数用判断就可以了,取前3位第一节,第二节取3个为父节点,取全部为第二节关键字,第三节取前6个为父节点,取全部为第三节关键字.

并没有要求培养字段,查询时从len(ID)=3*N,每次循环时N都+1
select * from tablename where len(id)=3
select case N
case 1
treeview.node.add id,name
case 2
treeview.node(left(id,3)).node.add id,name
case 3
treeview.node(left(id,3)).node(left(id,6)).add id,name
end select

查询结果排个升序就不会存在这样的问题了,你刚才说的那种,如果中间没有比001001001001001更短的关键字,那么就脱节,这种是不可能添加到treeview中.

递归一般用在不知道节数,没有关键字的情况,比如系统目录结构.

递归整个C盘目录:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim iDir As IO.Directory
Dim node As New TreeNode
'先把C盘添加到树中
TreeView1.Nodes.Clear()
node.ImageIndex = 0
node.Text = "本地磁盘 C:"
node.SelectedImageIndex = -1
TreeView1.Nodes.Add(node)
Dim i As Integ