用VBS模擬二叉樹,可以得到一個排序辦法.
數(shù)據(jù)結(jié)構(gòu)知識:
二叉樹中序便歷可以用來做排序
而VBS里面恰恰就沒有現(xiàn)成的排序方法,因此我寫了一個用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é)點"
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é)點 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)用示例------
'隨便一個數(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
欄 目:vb
本文地址:http://mengdiqiu.com.cn/a1/vb/7939.html
您可能感興趣的文章
- 01-10下載文件到本地運行的vbs
- 01-10VBS中的正則表達式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語法速查及實例說明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁面中添加VBscript代碼


閱讀排行
本欄相關(guān)
- 01-10下載文件到本地運行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個高效的軟件
- 01-10VBS中的正則表達式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語法速查及實例說明
隨機閱讀
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結(jié)
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改