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

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

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

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

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

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Private Function CreateTree(ByVal MaxLevel As Long) As clsTree
  4.     Dim NumOfChilds As Long, T As clsTree
  5.     MaxLevel = MaxLevel - 1
  6.     If MaxLevel = 0 Then Exit Function
  7.     NumOfChilds = Int(Rnd * 3) + 1
  8.     Set CreateTree = New clsTree
  9.     CreateTree.Value = Rnd * 100
  10.     Do While NumOfChilds
  11.         Set T = CreateTree(MaxLevel)
  12.         If Not T Is Nothing Then CreateTree.Childs.Add T
  13.         NumOfChilds = NumOfChilds - 1
  14.     Loop
  15. End Function
  16. Private Sub DrawTree(Tree As clsTree, Optional ByVal OffsetX As Long, Optional OffsetY As Long)
  17.     Dim S As String, N As Long, W As Long, H As Long, Y As Long
  18.     S = CStr(Tree.Value)
  19.     W = Me.TextWidth(S)
  20.     H = Me.TextHeight(S)
  21.     Me.Circle (OffsetX + W / 2, OffsetY + H / 2), H
  22.     Me.CurrentX = OffsetX: Me.CurrentY = OffsetY: Y = OffsetY
  23.     Me.Print S
  24.     If Tree.Childs.Count Then
  25.         N = Tree.Childs.Count
  26.         Do While N
  27.             Me.Line (OffsetX + H / 2 + H, Y + H / 2)-Step(40 - H * 2, OffsetY - Y)
  28.             DrawTree Tree.Childs(N), OffsetX + 40, OffsetY
  29.             OffsetY = OffsetY + Me.TextHeight(S) * 2
  30.             N = N - 1
  31.         Loop
  32.     End If
  33. End Sub
  34. Private Sub GetMinMax(Tree As clsTree, Min As Long, Max As Long)
  35.     Dim N As Long
  36.     If Tree.Value < Min Then Min = Tree.Value
  37.     If Tree.Value > Max Then Max = Tree.Value
  38.     N = Tree.Childs.Count
  39.     Do While N
  40.         GetMinMax Tree.Childs(N), Min, Max
  41.         N = N - 1
  42.     Loop
  43. End Sub
  44.  
  45. Private Sub Form_Load()
  46.     Dim T As clsTree, Min As Long, Max As Long
  47.     Me.Show
  48.     Randomize
  49.     Me.ScaleMode = vbPixels
  50.     Me.AutoRedraw = True
  51.     Set T = CreateTree(5)
  52.     DrawTree T, 20, 20
  53.     Min = T.Value: Max = T.Value
  54.     GetMinMax T, Min, Max
  55.     MsgBox "Минимальный элемент: " & Min & vbNewLine & _
  56.            "Максимальный элемент: " & Max & vbNewLine & _
  57.            "Сумма: " & Min + Max
  58. End Sub

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


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

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

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы