• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    用VBS模拟二叉树,可以得到一个排序办法.
    数据结构知识:

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

    而VBS里面恰恰就没有现成的排序方法,因此我写了一个用VBS的二叉树,来解决排序问题,中序便历就是排序。大家可以参考原理,应用到自己的程序中。

    SCRIPT LANGUAGE="vbScript">
     class node
     public data
     public Lnode
     public Rnode
     sub insert(newData)

      if newDatadata 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 newDatadata 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中关于计算机名的相关讨论
    下一篇:创建Guid 的代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    用VBS模拟二叉树,可以得到一个排序办法. 用,VBS,模拟,二叉,树,可以,