Sideway BICK BlogSideway BICK BLOG from Sideway

A Sideway to Sideway Home

Link:http://output.to/sideway/default.asp?qno=170100016

Knowledge Base Binary Tree Sorting

Knowledge Base: Examples of Sorting

Sorting: Sorting algorithm referencehttps://en.wikipedia.org/wiki/Sorting_algorithm

Sorting An Array by Binary Tree Algorithm

Sorting An Array by Binary Tree Sort Algorithm. Binary tree sort is a simple insertion algorithm by inserting elements to a binary noded tree like structure.

Binary tree sort reference:
https://en.wikipedia.org/wiki/Tree_sort,
https://en.wikipedia.org/wiki/Binary_search_tree

Examples:

Example of arranging an array in binary noded form by Binary Tree Algorithm.

ASP VbScript Command:
<script runat="server" language="VBScript">
Dim OriArry, NewArry
OriArry=Array("s","i","d","e","w","a","y","o","u","t")
Response.Write "Original Array"
Response.Write LstArry(OriArry,0,0,0)&" <br /> "
NewArry=SrtArry(OriArry)
Response.Write "Noded Binary Tree Array"
Response.Write LstArry(NewArry,0,0,0)

Function SrtArry(Ori_Arry)
Dim i, j, k, flag
Redim tree_arry(UBound(Ori_Arry))
left_ind=0
itm_arry=Ori_Arry(LBound(Ori_Arry))
rigt_ind=0
tree_arry(0)=array(left_ind,itm_arry,rigt_ind)
For i = LBound(Ori_Arry) to UBound(Ori_Arry)
   flag=0
   j=0
   Do while flag=0
       If UCase(Ori_Arry(i)) < UCase(tree_arry(j)(1)) Then
           k=0
       Else
           k=2
       End If
       If tree_arry(j)(k)=0 Then
           tree_arry(j)(k)=i
           tree_arry(i)=array("0",Ori_Arry(i),"0")
           flag=1
       Else
           j=tree_arry(j)(k)
       End If
   Loop
Next
SrtArry=tree_arry
End Function

Function LstArry(Ori_Arry,lvl,cnt,sze)
Dim i, j, k, l
j=lvl
k=cnt
l=sze
Response.Write " <br /> "
call PrtArrow(j)
Response.Write "["
flag=0
For i = LBound(Ori_Arry) to UBound(Ori_Arry)
   If k< l and j>0 Then
       flag=1
   End If
   If IsArray(Ori_Arry(i)) Then
       call LstArry(Ori_Arry(i),j+1,i,UBound(Ori_Arry))
   Else
       Response.Write Ori_Arry(i)
       If i<>UBound(Ori_Arry) Then
           Response.Write ", "
       End If
   End If
Next
Response.Write "]"
If flag=1 then
   Response.Write ","
End If
End Function

Function PrtArrow(cnt)
Dim count
count=cnt
Do While count>0
   count=count-1
   Response.Write "-->"
loop
End Function
</script>
HTML Web Page In-line Output:
Original Array
[s, i, d, e, w, a, y, o, u, t]
Noded Binary Tree Array
[
-->[1, s, 4],
-->[2, i, 7],
-->[5, d, 3],
-->[0, e, 0],
-->[8, w, 6],
-->[0, a, 0],
-->[0, y, 0],
-->[0, o, 0],
-->[9, u, 0],
-->[0, t, 0]]

Example of arranging an array in binary noded form with backward index by Binary Tree Algorithm.

ASP VbScript Command:
<script runat="server" language="VBScript">
Dim OriArry, NewArry, TreArry
OriArry=Array("s","i","d","e","w","a","y","o","u","t")
Response.Write "Original Array"
Response.Write LstArry(OriArry,0,0,0)&" <br /> "
Redim TreArry(UBound(OriArry))
TreArry(0)=array("0","0","0")
NewArry=SrtArry(OriArry,TreArry,0,0)
Response.Write "Noded Binary Tree with backward index Array"
Response.Write LstArry(NewArry,0,0,0)

Function SrtArry(Ori_Arry,Tre_Arry,i,j)
Dim k, flag, A
A=Tre_Arry
If UCase(Ori_Arry(i)) < UCase(Ori_Arry(j)) Then
    k=0
Else
    k=2
End If
If A(j)(k)=0 Then
    A(j)(k)=i
    A(i)=array("0",j,"0")
    i=i+1
    j=0
Else
    j=A(j)(k)
End If
if i<= UBound(Ori_Arry) then
    A=SrtArry(Ori_Arry,A,i,j)
end if
SrtArry=A
End Function

Function LstArry(Ori_Arry,lvl,cnt,sze)
Dim i, j, k, l
j=lvl
k=cnt
l=sze
Response.Write " <br /> "
call PrtArrow(j)
Response.Write "["
flag=0
For i = LBound(Ori_Arry) to UBound(Ori_Arry)
    If k < l and j > 0 Then
        flag=1
    End If
    If IsArray(Ori_Arry(i)) Then
        call LstArry(Ori_Arry(i),j+1,i,UBound(Ori_Arry))
    Else
        Response.Write Ori_Arry(i)
        If i<>UBound(Ori_Arry) Then
            Response.Write ", "
        End If
    End If
Next
Response.Write "]"
If flag=1 then
    Response.Write ","
End If
End Function

Function PrtArrow(cnt)
Dim count
count=cnt
Do While count>0
    count=count-1
    Response.Write "-->"
loop
End Function
</script>
HTML Web Page In-line Output:
Original Array
[s, i, d, e, w, a, y, o, u, t]
Noded Binary Tree with backward index Array
[
-->[1, 0, 4],
-->[2, 0, 7],
-->[5, 1, 3],
-->[0, 2, 0],
-->[8, 0, 6],
-->[0, 2, 0],
-->[0, 4, 0],
-->[0, 1, 0],
-->[9, 4, 0],
-->[0, 8, 0]]

Example of listing a binary noded array in array form by Binary Tree Algorithm.

ASP VbScript Command:
<script runat="server" language="VBScript">
Dim OriArry, NewArry, TreArry
OriArry=Array("s","i","d","e","w","a","y","o","u","t")
Response.Write "Original Array <br />"
Response.Write LstArry(OriArry,0,0,0)&" <br /> "
Redim TreArry(UBound(OriArry))
TreArry(0)=array("0","0","0")
NewArry=SrtArry(OriArry,TreArry,0,0)
Response.Write "Noded Binary Tree Array <br />"
Response.Write LstArry(NewArry,0,0,0)
Response.Write " <br />"
Response.Write "Recursively Noded Binary Tree Array Listing <br />"
Call LstTree(NewArry,NewArry(0))

Function SrtArry(Ori_Arry,Tre_Arry,i,j)
Dim k, flag, A
A=Tre_Arry
If UCase(Ori_Arry(i)) < UCase(Ori_Arry(j)) Then
    k=0
Else
    k=2
End If
If A(j)(k)=0 Then
    A(j)(k)=i
    A(i)=array("0",Ori_Arry(i),"0")
    i=i+1
    j=0
Else
    j=A(j)(k)
End If
if i <= UBound(Ori_Arry) then
    A=SrtArry(Ori_Arry,A,i,j)
end if
SrtArry=A
End Function

Function LstTree(Ori_Arry,Tre_Arry)
Dim k, A
A=Tre_Arry
k=0
If A(k) > 0 Then
    A(k)=LstTree(Ori_Arry,Ori_Arry(A(k)))
End If
k=2
If A(k) > 0 Then
    A(k)=LstTree(Ori_Arry,Ori_Arry(A(k)))
End If
LstTree=A
Call LstArry(LstTree,0,0,0)
Response.Write " <br />"
End Function

Function LstArry(Ori_Arry,lvl,cnt,sze)
Dim i, j, k, l
j=lvl
k=cnt
l=sze
'Response.Write " <br /> "
'call PrtArrow(j)
Response.Write "["
flag=0
For i = LBound(Ori_Arry) to UBound(Ori_Arry)
    If k < l and j > 0 Then
        flag=1
    End If
    If IsArray(Ori_Arry(i)) Then
        call LstArry(Ori_Arry(i),j+1,i,UBound(Ori_Arry))
    Else
        Response.Write Ori_Arry(i)
        If i<>UBound(Ori_Arry) Then
            Response.Write ", "
        End If
    End If
Next
Response.Write "]"
If flag=1 then
    Response.Write ","
End If
End Function

Function PrtArrow(cnt)
Dim count
count=cnt
Do While count>0
    count=count-1
    Response.Write "-->"
loop
End Function
</script>
HTML Web Page In-line Output:
Original Array
[s, i, d, e, w, a, y, o, u, t]
Noded Binary Tree Array
[[1, s, 4],[2, i, 7],[5, d, 3],[0, e, 0],[8, w, 6],[0, a, 0],[0, y, 0],[0, o, 0],[9, u, 0],[0, t, 0]]
Recursively Noded Binary Tree Array Listing
[0, a, 0]
[0, e, 0]
[[0, a, 0],d, [0, e, 0]]
[0, o, 0]
[[[0, a, 0],d, [0, e, 0]],i, [0, o, 0]]
[0, t, 0]
[[0, t, 0],u, 0]
[0, y, 0]
[[[0, t, 0],u, 0],w, [0, y, 0]]
[[[[0, a, 0],d, [0, e, 0]],i, [0, o, 0]],s, [[[0, t, 0],u, 0],w, [0, y, 0]]]

Example of sorting a binary noded array in array form by Binary Tree Algorithm.

ASP VbScript Command:
<script runat="server" language="VBScript">
Dim OriArry, NewArry, TreArry
OriArry=Array("s","i","d","e","w","a","y","o","u","t")
Response.Write "Original Array <br />"
Response.Write LstArry(OriArry,0,0,0)&" <br /> "
Redim TreArry(UBound(OriArry))
TreArry(0)=array("0","0","0")
NewArry=SrtArry(OriArry,TreArry,0,0)
Response.Write "Noded Binary Tree Array <br />"
Response.Write LstArry(NewArry,0,0,0)
Redim BinArry(UBound(OriArry))
Response.Write " <br />"
Response.Write "Recursively Noded Binary Tree Array Sorting <br />"
Call LstTree(NewArry,NewArry(0),BinArry,0)

Function SrtArry(Ori_Arry,Tre_Arry,i,j)
Dim k, flag, A
A=Tre_Arry
If UCase(Ori_Arry(i)) < UCase(Ori_Arry(j)) Then
    k=0
Else
    k=2
End If
If A(j)(k)=0 Then
    A(j)(k)=i
    A(i)=array("0",Ori_Arry(i),"0")
    i=i+1
    j=0
Else
    j=A(j)(k)
End If
if i<= UBound(Ori_Arry) then
    A=SrtArry(Ori_Arry,A,i,j)
end if
' aasspp_raw_code = aasspp_raw_code& " <br />"
'Call LstArry(A,0,0,0)
SrtArry=A
End Function

Function LstTree(Ori_Arry,Tre_Arry,Bin_Arry,i)
Dim k, A
A=Tre_Arry
Call TstArry(Ori_Arry,0,Bin_Arry,A,i)
Bin_Arry(i)=A(1)
i=i+1
Call TstArry(Ori_Arry,2,Bin_Arry,A,i)
LstTree=Bin_Arry
Call LstArry(Bin_Arry,0,0,0)
Response.Write " <br />"
End Function

Sub TstArry(Ori_Arry,k,Bin_Arry,A,i)
If A(k)>0 Then
    A(k)=LstTree(Ori_Arry,Ori_Arry(A(k)),Bin_Arry,i)
End If
End Sub

Function LstArry(Ori_Arry,lvl,cnt,sze)
Dim i, j, k, l
j=lvl
k=cnt
l=sze
'Response.Write " <br /> "
'call PrtArrow(j)
Response.Write "["
flag=0
For i = LBound(Ori_Arry) to UBound(Ori_Arry)
    If k < l and j > 0 Then
        flag=1
    End If
    If IsArray(Ori_Arry(i)) Then
        call LstArry(Ori_Arry(i),j+1,i,UBound(Ori_Arry))
    Else
        Response.Write Ori_Arry(i)
        If i<>UBound(Ori_Arry) Then
            Response.Write ", "
        End If
    End If
Next
Response.Write "]"
If flag=1 then
    Response.Write ","
End If
End Function

Function PrtArrow(cnt)
Dim count
count=cnt
Do While count>0
    count=count-1
    Response.Write "-->"
loop
End Function
</script>
HTML Web Page In-line Output:
Original Array
[s, i, d, e, w, a, y, o, u, t]
Noded Binary Tree Array
[[1, s, 4],[2, i, 7],[5, d, 3],[0, e, 0],[8, w, 6],[0, a, 0],[0, y, 0],[0, o, 0],[9, u, 0],[0, t, 0]]
Recursively Noded Binary Tree Array Sorting
[a, , , , , , , , , ]
[a, d, e, , , , , , , ]
[a, d, e, , , , , , , ]
[a, d, e, i, o, , , , , ]
[a, d, e, i, o, , , , , ]
[a, d, e, i, o, s, t, , , ]
[a, d, e, i, o, s, t, u, , ]
[a, d, e, i, o, s, t, u, w, y]
[a, d, e, i, o, s, t, u, w, y]
[a, d, e, i, o, s, t, u, w, y]

Sideway BICK Blog

16/01


Copyright © 2000-2020 Sideway . All rights reserved Disclaimerslast modified on 26 January 2013