佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 用VBS模擬二叉樹,可以得到一個排序辦法.

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

熱門標(biāo)簽:鐵路電話系統(tǒng) 呼叫中心市場需求 檢查注冊表項(xiàng) 銀行業(yè)務(wù) 美圖手機(jī) 服務(wù)器配置 網(wǎng)站文章發(fā)布 智能手機(jī)
數(shù)據(jù)結(jié)構(gòu)知識:

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

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

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
'調(diào)用示例

set T=new tree

document.write  "插入節(jié)點(diǎn)"
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>

 

插入節(jié)點(diǎn) 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)函數(shù) 

 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函數(shù)部分------
 '-------以下是調(diào)用示例------
 '隨便一個數(shù)組
arr=array(39,69,94,47,50,72,55,41,97,73)
 '顯示數(shù)組內(nèi)容
for each a in arr 
  document.write  a  "nbsp;"
next
document.write  "br/>" 
 '排序處理
arr=sort(arr)
 '顯示排序后的結(jié)果
for each a in arr 
  document.write  a  "nbsp;"
next
 /SCRIPT>

輸出結(jié)果:

39 69 94 47 50 72 55 41 97 73 
39 41 47 50 55 69 72 73 94 97

標(biāo)簽:滄州 長治 樂山 上海 沈陽 河南 紅河 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用VBS模擬二叉樹,可以得到一個排序辦法.》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    双鸭山市| 东乡| 涞水县| 江达县| 边坝县| 江津市| 惠东县| 长兴县| 新源县| 雷州市| 友谊县| 双辽市| 景东| 宁国市| 阳朔县| 外汇| 南江县| 莱西市| 麟游县| 辽阳市| 福鼎市| 聂荣县| 积石山| 韩城市| 麻江县| 鹤峰县| 阳朔县| 东乡县| 南召县| 新闻| 台山市| 茂名市| 临漳县| 马公市| 罗平县| 凌海市| 漯河市| 澄江县| 甘德县| 墨玉县| 汽车|