給你個例子希望可以幫到你
創(chuàng)新互聯(lián)主營中原網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,中原h(huán)5微信小程序定制開發(fā)搭建,中原網(wǎng)站營銷推廣歡迎中原等地區(qū)企業(yè)咨詢
遞歸系統(tǒng)目錄結(jié)構(gòu).
遞歸整個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 Integer
'獲取C:盤根目錄下的文件夾
Dim str() As String = IO.Directory.GetDirectories("D:\")
For i = 0 To str.GetUpperBound(0)
'調(diào)用遍歷過程
AddDirectory("C:", str(i), node)
Next
node = Nothing
iDir = Nothing
End Sub
Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)
Dim iDir As IO.Directory
'Dim iDirInfo As IO.DirectoryInfo
Dim i As Integer
Dim node As New TreeNode
'先添加本目錄,從文件夾路徑分析出文件夾名稱
node.Text = Strings.Replace(strPath, strFatherPath "\", "", , 1)
'為單個節(jié)點指定節(jié)點未被選中時顯示的圖標(biāo)
node.ImageIndex = 1
'為單個節(jié)點指定節(jié)點被選中時顯示的圖標(biāo)
node.SelectedImageIndex = 2
nodeFather.Nodes.Add(node)
Application.DoEvents()
Try
Dim str() As String = IO.Directory.GetDirectories(strPath)
'遍歷該目錄的子文件夾
For i = 0 To str.GetUpperBound(0)
AddDirectory(strPath, str(i), node)
Next
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
node = Nothing
iDir = Nothing
End Sub
這種不要用遞歸,知道關(guān)鍵字長度,知道節(jié)數(shù)用判斷就可以了,取前3位第一節(jié),第二節(jié)取3個為父節(jié)點,取全部為第二節(jié)關(guān)鍵字,第三節(jié)取前6個為父節(jié)點,取全部為第三節(jié)關(guān)鍵字.
并沒有要求培養(yǎng)字段,查詢時從len(ID)=3*N,每次循環(huá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
查詢結(jié)果排個升序就不會存在這樣的問題了,你剛才說的那種,如果中間沒有比001001001001001更短的關(guān)鍵字,那么就脫節(jié),這種是不可能添加到treeview中.
遞歸一般用在不知道節(jié)數(shù),沒有關(guān)鍵字的情況,比如系統(tǒng)目錄結(jié)構(gòu).
遞歸整個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 Integer
'獲取C:盤根目錄下的文件夾
Dim str() As String = IO.Directory.GetDirectories("D:\")
For i = 0 To str.GetUpperBound(0)
'調(diào)用遍歷過程
AddDirectory("C:", str(i), node)
Next
node = Nothing
iDir = Nothing
End Sub
Public Sub AddDirectory(ByVal strFatherPath As String, ByVal strPath As String, ByVal nodeFather As TreeNode)
Dim iDir As IO.Directory
'Dim iDirInfo As IO.DirectoryInfo
Dim i As Integer
Dim node As New TreeNode
'先添加本目錄,從文件夾路徑分析出文件夾名稱
node.Text = Strings.Replace(strPath, strFatherPath "\", "", , 1)
'為單個節(jié)點指定節(jié)點未被選中時顯示的圖標(biāo)
node.ImageIndex = 1
'為單個節(jié)點指定節(jié)點被選中時顯示的圖標(biāo)
node.SelectedImageIndex = 2
nodeFather.Nodes.Add(node)
Application.DoEvents()
Try
Dim str() As String = IO.Directory.GetDirectories(strPath)
'遍歷該目錄的子文件夾
For i = 0 To str.GetUpperBound(0)
AddDirectory(strPath, str(i), node)
Next
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
node = Nothing
iDir = Nothing
End Sub
int nestAdd(int n) {
if (n 1) return n + nestAdd(n - 1);
else return n;
}
嵌套是指一個過程調(diào)用另一個過程的使用,遞歸過程是這個過程中調(diào)用本過程的使用。遞歸是嵌套的一種特殊形式,遞歸過程必須有“歸點”,也就是終止調(diào)用本身的一個分支
分享文章:關(guān)于vb.net無參數(shù)遞歸的信息
本文路徑:http://www.muchs.cn/article16/docsggg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)建站、建站公司、手機網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)