Написать процедуру, которая складывает максимальный и минимальный элементы непустого дерева - VB

Узнай цену своей работы

Формулировка задачи:

Написать процедуру, которая складывает максимальный и минимальный элементы непустого дерева Т, все элементы которого различны.

Решение задачи: «Написать процедуру, которая складывает максимальный и минимальный элементы непустого дерева»

textual
Листинг программы
Option Explicit
 
Private Function CreateTree(ByVal MaxLevel As Long) As clsTree
    Dim NumOfChilds As Long, T As clsTree
    MaxLevel = MaxLevel - 1
    If MaxLevel = 0 Then Exit Function
    NumOfChilds = Int(Rnd * 3) + 1
    Set CreateTree = New clsTree
    CreateTree.Value = Rnd * 100
    Do While NumOfChilds
        Set T = CreateTree(MaxLevel)
        If Not T Is Nothing Then CreateTree.Childs.Add T
        NumOfChilds = NumOfChilds - 1
    Loop
End Function
Private Sub DrawTree(Tree As clsTree, Optional ByVal OffsetX As Long, Optional OffsetY As Long)
    Dim S As String, N As Long, W As Long, H As Long, Y As Long
    S = CStr(Tree.Value)
    W = Me.TextWidth(S)
    H = Me.TextHeight(S)
    Me.Circle (OffsetX + W / 2, OffsetY + H / 2), H
    Me.CurrentX = OffsetX: Me.CurrentY = OffsetY: Y = OffsetY
    Me.Print S
    If Tree.Childs.Count Then
        N = Tree.Childs.Count
        Do While N
            Me.Line (OffsetX + H / 2 + H, Y + H / 2)-Step(40 - H * 2, OffsetY - Y)
            DrawTree Tree.Childs(N), OffsetX + 40, OffsetY
            OffsetY = OffsetY + Me.TextHeight(S) * 2
            N = N - 1
        Loop
    End If
End Sub
Private Sub GetMinMax(Tree As clsTree, Min As Long, Max As Long)
    Dim N As Long
    If Tree.Value < Min Then Min = Tree.Value
    If Tree.Value > Max Then Max = Tree.Value
    N = Tree.Childs.Count
    Do While N
        GetMinMax Tree.Childs(N), Min, Max
        N = N - 1
    Loop
End Sub
 
Private Sub Form_Load()
    Dim T As clsTree, Min As Long, Max As Long
    Me.Show
    Randomize
    Me.ScaleMode = vbPixels
    Me.AutoRedraw = True
    Set T = CreateTree(5)
    DrawTree T, 20, 20
    Min = T.Value: Max = T.Value
    GetMinMax T, Min, Max
    MsgBox "Минимальный элемент: " & Min & vbNewLine & _
           "Максимальный элемент: " & Max & vbNewLine & _
           "Сумма: " & Min + Max
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы