Текст класса tree
Public
ind As Double ‘ содержимое
узла
дерева
Public
leftcell
As
tree
‘ указатель на левое поддерево
Public
rightcell
As
tree
‘указатель на правое поддерево
Текст программы
Public maxel, minel As Double
Public head As tree
Public ct, kol As Byte
Public indeks As Byte
Private Sub Command1_Click()
Dim prev As Byte
indeks = indeks + 1
If indeks < 7 Then
prev = ct
ct = ct * 2
Form1.Height = Form1.Height +
350
Command2.Top =
Form1.ScaleHeight - Command2.Height - 105
Label1.Top =
Form1.ScaleHeight - Label1.Height + 205
Dim temp As Byte
temp = 0
Dim q As Integer
q = text(0).Left -
(text(0).Width + 100) * ct / 2
For i = prev + 1 To ct
temp = temp + 1
Load text(i - 1)
text(i - 1).Top = text(prev -
1).Top + 350
text(i - 1).Left = q + temp *
(text(0).Width + 100) + ct / 4 * (text(0).Width + 100)
text(i - 1).Visible = True
Next i
End If
End Sub
‘ рекурсивная
функция обхода дерева и добавления к
нему новых ‘элементов
Private Sub MYADD(kolv As
Integer, ByVal z As tree)
Dim tmp As Double
kol = kol + 1
Set z = New tree
tmp = Val(text(kol).text)
z.ind = tmp
If
maxel < tmp Then maxel = tmp ‘ поиск
максимального
элемента
If
minel > tmp Then minel = tmp ‘ поиск
минимального
элемента
If
kolv < indeks - 1 Then ‘ проверка
глубины
вложенности
дерева
Dim rc As New tree
Dim lc As New tree
Set z.leftcell = lc
Set z.rightcell = rc
Call MYADD(kolv + 1, lc)
Call MYADD(kolv + 1, rc)
End If
End Sub
Private Sub Command2_Click()
kol = 0
Call MYADD(1, head)
Form1.Height = Form1.Height + 555
Label1.Caption
= "Сумма
равна
" + Str(maxel + minel)
End Sub
Private Sub Form_Load()
‘ начальная
инициализация переменных
ct = 1
indeks = 1
maxel = 0
minel = 6555
End Sub