时间:2021-05-22
数据结构知识:
二叉树中序便历可以用来做排序
而VBS里面恰恰就没有现成的排序方法,因此我写了一个用VBS的二叉树,来解决排序问题,中序便历就是排序。大家可以参考原理,应用到自己的程序中。
<SCRIPTLANGUAGE="vbScript">
classnode
publicdata
publicLnode
publicRnode
subinsert(newData)
ifnewData<datathen
ifIsEmpty(Lnode)then
setLnode=newnode
Lnode.data=newData
else
Lnode.insertnewData
endif
else
ifIsEmpty(Rnode)then
setRnode=newnode
Rnode.data=newData
else
Rnode.insertnewData
endif
endif
endsub
endclass
classtree
publicroot
subinsertNode(newData)
ifIsEmpty(root)then
setroot=newnode
root.data=newData
else
root.insertnewData
endif
endsub
subpreOrderTraversal'前序便历
preOrderroot
document.write"<br/>"
endsub
subinOrderTraversal'中序便历
inOrderroot
document.write"<br/>"
endsub
subpostOrderTraversal'后序便历
postOrderroot
document.write"<br/>"
endsub
PrivatesubpreOrder(N)
ifIsEmpty(N)thenexitsub
document.write" "&N.data
preOrderN.Lnode
preOrderN.Rnode
endsub
PrivatesubinOrder(N)
ifIsEmpty(N)thenexitsub
inOrderN.Lnode
document.write" "&N.data
inOrderN.Rnode
endsub
PrivatesubpostOrder(N)
ifIsEmpty(N)thenexitsub
postOrderN.Lnode
postOrderN.Rnode
document.write" "&N.data
endsub
endclass
'调用示例
setT=newtree
document.write"插入节点"
arr=array(39,69,94,47,50,72,55,41,97,73)
fori=0to9
document.write" "&arr(i)
T.insertNodearr(i)
next
document.write"<br/>"
document.write"前序便历"
T.preOrderTraversal
document.write"中序便历"
T.inOrderTraversal
document.write"后序便历"
T.postOrderTraversal
</SCRIPT>
插入节点39699447507255419773
前序便历39694741505594727397
中序便历39414750556972739497
后序便历41555047737297946939
改写成sort(arr)函数
<SCRIPTLANGUAGE="vbScript">
classnode
publicdata
publicLnode
publicRnode
subinsert(newData)
ifnewData<datathen
ifIsEmpty(Lnode)then
setLnode=newnode
Lnode.data=newData
else
Lnode.insertnewData
endif
else
ifIsEmpty(Rnode)then
setRnode=newnode
Rnode.data=newData
else
Rnode.insertnewData
endif
endif
endsub
endclass
classtree
publicroot
publicArr
privateindex
subinsertNode(newData)
ifIsEmpty(root)then
setroot=newnode
root.data=newData
index=0
else
root.insertnewData
endif
endsub
subinOrderTraversal'中序便历
inOrderroot
endsub
PrivatesubinOrder(N)
ifIsEmpty(N)thenexitsub
inOrderN.Lnode
Arr(index)=N.data
index=index+1
inOrderN.Rnode
endsub
endclass
functionsort(arr)
setT=newtree
T.Arr=arr
foreachainarr
T.insertNodea
next
T.inOrderTraversal
sort=T.Arr
endfunction
'-------以上是sort函数部分------
'-------以下是调用示例------
'随便一个数组
arr=array(39,69,94,47,50,72,55,41,97,73)
'显示数组内容
foreachainarr
document.writea&" "
next
document.write"<br/>"
'排序处理
arr=sort(arr)
'显示排序后的结果
foreachainarr
document.writea&" "
next
</SCRIPT>
输出结果:
39699447507255419773
39414750556972739497
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Java二叉树排序算法排序二叉树的描述也是一个递归的描述,所以排序二叉树的构造自然也用递归的:排序二叉树的3个特征:1:当前node的所有左孩子的值都小于当前n
引入线索二叉树的目的是找一个节点的前驱后继的时候,比非二叉线索树方便快捷。按照某种遍历方式对二叉树进行遍历,可以把二叉树中所有结点排序为一个线性序列。 当用二
问题如何遍历一个二叉树遍历二叉树就是访问二叉树的每一个节点二叉树父结点下先左访问,先序遍历(根左右)例如:遍历以下的二叉树遍历结果:ABDECFPython代码
二叉排序树(BST)又称二叉查找树、二叉搜索树二叉排序树(BinarySortTree)又称二叉查找树。它或者是一棵空树;或者是具有下列性质的二叉树:1.若左子
二叉树是由根节点,左子树,右子树组成,左子树和友子树分别是一个二叉树。这篇文章主要在JS中实现二叉树的遍历。一个二叉树的例子vartree={value:1,l