国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > VBScript > 正文

用VBS模擬二叉樹,可以得到一個排序辦法.

2020-03-24 16:51:44
字體:
來源:轉載
供稿:網友
數據結構知識:

二叉樹中序便歷可以用來做排序

而VBS里面恰恰就沒有現成的排序方法,因此我寫了一個用VBS的二叉樹,來解決排序問題,中序便歷就是排序。大家可以參考原理,應用到自己的程序中。

SCRIPT LANGUAGE="vbScript"
html' target='_blank'>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

html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 屏东县| 沈阳市| 黄石市| 东乡| 平邑县| 博罗县| 麻江县| 灌南县| 玉屏| 三河市| 南华县| 吉木乃县| 万安县| 马山县| 湘乡市| 色达县| 巫山县| 大连市| 华坪县| 安吉县| 昆山市| 贞丰县| 嘉定区| 阿拉善盟| 北川| 汝南县| 富顺县| 信宜市| 天水市| 郁南县| 太康县| 金川县| 沅江市| 镇赉县| 龙江县| 易门县| 彰化市| 灵寿县| 都昌县| 外汇| 临猗县|