麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > VBScript > 正文

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

2020-07-26 12:04:08
字體:
來源:轉載
供稿:網友
數據結構知識:

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

而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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲自拍第二页 | 欧美激情猛片xxxⅹ大3 | 毛片成人网 | 91美女视频在线观看 | 羞羞视频免费观看网站 | 亚洲精品动漫在线观看 | v11av在线播放 | 韩国草草影院 | 精品亚洲国产视频 | 国产盼盼私拍福利视频99 | xxxxhd73国产 | 精品在线观看一区二区三区 | 加勒比综合 | 国产精品片一区二区三区 | 久久精品日产高清版的功能介绍 | 色屁屁xxxxⅹ免费视频 | av在线不卡免费 | 亚洲国产视频网 | 欧美一级黄视频 | 国产成人自拍av | 人人做人人看 | 欧美无极品 | 日本视频免费看 | 黄色大片在线免费看 | 久久久aa | 成人一级视频在线观看 | 国产一区二区三区欧美 | 午夜免费一区 | www.91在线 | 日本aⅴ在线 | 午夜精品老牛av一区二区三区 | 在线a毛片 | 国产精品成人一区二区三区吃奶 | 一区播放 | 激情大乳女做爰办公室韩国 | 午夜国内精品a一区二区桃色 | 91性高湖久久久久久久久网站 | 黄色特级一级片 | 久久午夜免费视频 | 爱爱插插视频 | 日韩黄在线观看 |