用VBS模擬二叉樹,可以得到一個(gè)排序辦法.
更新時(shí)間:2007年03月05日 00:00:00 作者:
數(shù)據(jù)結(jié)構(gòu)知識(shí):
二叉樹中序便歷可以用來做排序
而VBS里面恰恰就沒有現(xiàn)成的排序方法,因此我寫了一個(gè)用VBS的二叉樹,來解決排序問題,中序便歷就是排序。大家可以參考原理,應(yīng)用到自己的程序中。
<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
'調(diào)用示例
set T=new tree
document.write "插入節(jié)點(diǎn)"
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>
插入節(jié)點(diǎn) 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)函數(shù)
<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函數(shù)部分------
'-------以下是調(diào)用示例------
'隨便一個(gè)數(shù)組
arr=array(39,69,94,47,50,72,55,41,97,73)
'顯示數(shù)組內(nèi)容
for each a in arr
document.write a & " "
next
document.write "<br/>"
'排序處理
arr=sort(arr)
'顯示排序后的結(jié)果
for each a in arr
document.write a & " "
next
</SCRIPT>
輸出結(jié)果:
39 69 94 47 50 72 55 41 97 73
39 41 47 50 55 69 72 73 94 97
二叉樹中序便歷可以用來做排序
而VBS里面恰恰就沒有現(xiàn)成的排序方法,因此我寫了一個(gè)用VBS的二叉樹,來解決排序問題,中序便歷就是排序。大家可以參考原理,應(yīng)用到自己的程序中。
<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
'調(diào)用示例
set T=new tree
document.write "插入節(jié)點(diǎn)"
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>
插入節(jié)點(diǎn) 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)函數(shù)
<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函數(shù)部分------
'-------以下是調(diào)用示例------
'隨便一個(gè)數(shù)組
arr=array(39,69,94,47,50,72,55,41,97,73)
'顯示數(shù)組內(nèi)容
for each a in arr
document.write a & " "
next
document.write "<br/>"
'排序處理
arr=sort(arr)
'顯示排序后的結(jié)果
for each a in arr
document.write a & " "
next
</SCRIPT>
輸出結(jié)果:
39 69 94 47 50 72 55 41 97 73
39 41 47 50 55 69 72 73 94 97
相關(guān)文章
VBScript開發(fā)自動(dòng)化測(cè)試腳本的方法分析
很多人都覺得微軟的VBScript功能比較弱,如果從開發(fā)自動(dòng)化測(cè)試的角度來講,更是不可能了。從我對(duì)VBScript腳本的了解來看,對(duì)一個(gè)腳本是否可以做自動(dòng)化測(cè)試需要這個(gè)測(cè)試人員具備兩方面的知識(shí),第一個(gè),就是對(duì)VBScript腳本開發(fā)語言精通,要了解VBScript的核心技術(shù)如何更廣泛的應(yīng)用;第二個(gè),就是要有自動(dòng)化的測(cè)試思想,這個(gè)一定得是做過測(cè)試工作的能夠了解的多一些。2008-03-03
vbs-toolkit VBSEdit 提供 免費(fèi)的COM組件
VBSCRIPT 語法簡(jiǎn)單 強(qiáng)大 但是功能上明顯不足 需要第三方的控制 e.g. COM 組件來擴(kuò)展其功能. VBSEDIT 安裝完之后就可以在安裝目錄下發(fā)現(xiàn) 免費(fèi)提供的 COM 組件 vbs toolkit2018-06-06
視頻轉(zhuǎn)換大師WinMPG Video Convert 6.63
視頻轉(zhuǎn)換大師WinMPG Video Convert 6.63...2007-04-04
用VBS模擬實(shí)現(xiàn)PHP的sha1_file函數(shù)效果代碼
用VBS模擬實(shí)現(xiàn)PHP的sha1_file函數(shù)效果代碼,需要的朋友可以參考下。2011-01-01

