校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

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

熱門標簽:怎么看地圖標注 百度地圖標注是什么意思 外呼系統免費招代理 廣州ai電銷機器人一般多少錢 深圳外呼系統收費 拉薩外呼系統業務 外呼線路中繼線是什么 外呼系統telrobot 合肥高德地圖標注
數據結構知識:

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

而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模擬二叉樹,可以得到一個排序辦法.》,本文關鍵詞  用,VBS,模擬,二叉,樹,可以,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《用VBS模擬二叉樹,可以得到一個排序辦法.》相關的同類信息!
  • 本頁收集關于用VBS模擬二叉樹,可以得到一個排序辦法.的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 泽普县| 奈曼旗| 宿州市| 新兴县| 温州市| 比如县| 家居| 新宁县| 宜章县| 泽普县| 志丹县| 定州市| 阜新| 磐石市| 修文县| 娄底市| 塔河县| 乌拉特后旗| 涪陵区| 探索| 孙吴县| 布拖县| 佛冈县| 通海县| 阳春市| 屏边| 潮州市| 兴山县| 南丹县| 肥东县| 西贡区| 祥云县| 芜湖市| 远安县| 桦川县| 平阳县| 保靖县| 会同县| 康定县| 广元市| 闸北区|