您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關怎么用VBS模擬二叉樹的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
數據結構知識:
二叉樹中序便歷可以用來做排序
而VBS里面恰恰就沒有現成的排序方法,因此我寫了一個用VBS的二叉樹,來解決排序問題,中序便歷就是排序。大家可以參考原理,應用到自己的程序中。
<SCRIPT LANGUAGE="vbScript">
class node
public data
public Lnode
public Rnode
sub insert(newData)
if newData<data then
if IsEmpty(Lnode) then
set Lnode=new node
Lnode.data = newData
else
Lnode.insert newData
end if
else
if IsEmpty(Rnode) then
set Rnode=new node
Rnode.data = newData
else
Rnode.insert newData
end if
end if
end sub
end class
class tree
public root
sub insertNode(newData)
if IsEmpty(root) then
set root=new node
root.data=newData
else
root.insert newData
end if
end sub
sub preOrderTraversal'前序便歷
preOrder root
document.write "<br/>"
end sub
sub inOrderTraversal '中序便歷
inOrder root
document.write "<br/>"
end sub
sub postOrderTraversal'后序便歷
postOrder root
document.write "<br/>"
end sub
Private sub preOrder(N)
if IsEmpty(N) then exit sub
document.write " " & N.data
preOrder N.Lnode
preOrder N.Rnode
end sub
Private sub inOrder(N)
if IsEmpty(N) then exit sub
inOrder N.Lnode
document.write " " & N.data
inOrder N.Rnode
end sub
Private sub postOrder(N)
if IsEmpty(N) then exit sub
postOrder N.Lnode
postOrder N.Rnode
document.write " " & N.data
end sub
end class
'調用示例
set T=new tree
document.write "插入節點"
arr=array(39,69,94,47,50,72,55,41,97,73)
for i=0 to 9
document.write " " & arr(i)
T.insertNode arr(i)
next
document.write "<br/>"
document.write "前序便歷"
T.preOrderTraversal
document.write "中序便歷"
T.inOrderTraversal
document.write "后序便歷"
T.postOrderTraversal
</SCRIPT>
插入節點 39 69 94 47 50 72 55 41 97 73
前序便歷 39 69 47 41 50 55 94 72 73 97
中序便歷 39 41 47 50 55 69 72 73 94 97
后序便歷 41 55 50 47 73 72 97 94 69 39
改寫成sort(arr)函數
<SCRIPT LANGUAGE="vbScript">
class node
public data
public Lnode
public Rnode
sub insert(newData)
if newData<data then
if IsEmpty(Lnode) then
set Lnode=new node
Lnode.data = newData
else
Lnode.insert newData
end if
else
if IsEmpty(Rnode) then
set Rnode=new node
Rnode.data = newData
else
Rnode.insert newData
end if
end if
end sub
end class
class tree
public root
public Arr
private index
sub insertNode(newData)
if IsEmpty(root) then
set root=new node
root.data=newData
index=0
else
root.insert newData
end if
end sub
sub inOrderTraversal '中序便歷
inOrder root
end sub
Private sub inOrder(N)
if IsEmpty(N) then exit sub
inOrder N.Lnode
Arr(index)= N.data
index=index+1
inOrder N.Rnode
end sub
end class
function sort(arr)
set T=new tree
T.Arr=arr
for each a in arr
T.insertNode a
next
T.inOrderTraversal
sort=T.Arr
end function
'-------以上是sort函數部分------
'-------以下是調用示例------
'隨便一個數組
arr=array(39,69,94,47,50,72,55,41,97,73)
'顯示數組內容
for each a in arr
document.write a & " "
next
document.write "<br/>"
'排序處理
arr=sort(arr)
'顯示排序后的結果
for each a in arr
document.write a & " "
next
</SCRIPT>
輸出結果:
39 69 94 47 50 72 55 41 97 73
39 41 47 50 55 69 72 73 94 97
感謝各位的閱讀!關于“怎么用VBS模擬二叉樹”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。