这篇文章给大家分享的是有关怎么用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模拟二叉树”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
文章标题:怎么用VBS模拟二叉树-创新互联
浏览地址:https://www.cdcxhl.com/article40/dodgeo.html
成都网站建设公司_创新互联,为您提供云服务器、网站维护、微信小程序、App开发、企业建站、网站设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联