我觉得二叉树是最典型的面向对象的例子了。对象分为树,节点,节点的左右节点属性又是节点对象,比较好玩。
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 classclass tree
public root
 
sub insertNode(newData)
if IsEmpty(root) then
set root=new node
root.data=newData
 else
root.insert newData
end if
end subsub 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 subPrivate 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

解决方案 »

  1.   

    恩,以前发过VBS版本的,我现在有C#,JS,VBS三种版本了。一般书上都是C,C++版本
      

  2.   

      and admiring.........
      

  3.   

    我觉得这段程序很好啊,写JS架构的话很有用,比如模拟TreeMap这种对象
      

  4.   

    先顶再看。学习学习再学习越来越爱JAVASCRIPT了。
      

  5.   

    http://hi.baidu.com/ivan/blog/item/0cfc828bdd31a9d3fd1f1051.html平衡数,参考这个,递归左右旋转,有点工作量,不过我这个就是演示一下用JS写特殊结构体,至于扩展的玩法在应用的时候再写也不迟。