怎么用VBS模拟二叉树-创新互联

这篇文章给大家分享的是有关怎么用VBS模拟二叉树的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联公司专注于企业营销型网站建设、网站重做改版、姚安网站定制设计、自适应品牌网站建设、H5开发购物商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为姚安等各大城市提供网站开发制作服务。

数据结构知识:

二叉树中序便历可以用来做排序

而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 "&nbsp;" & 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 "&nbsp;" & 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 "&nbsp;" & 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 "&nbsp;" & 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 & "&nbsp;"
next
document.write  "<br/>" 
 '排序处理
arr=sort(arr)
 '显示排序后的结果
for each a in arr 
  document.write  a & "&nbsp;"
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。内容未经允许不得转载,或转载时需注明来源: 创新互联

商城网站建设