A
UBB · Informatică
260

Se consideră algoritmul Transform(node, k, s, c), unde node reprezintă un nod al arborelui, iar k, s și c sunt numere naturale, și arborele binar:

462810121416202218

Algoritm 1

Algorithm transform(node, k, s, c)
  If node = null then
    s ← 0
    c ← 0
    Return
  EndIf
  leftS ← 0, leftC ← 0
  rightS ← 0, rightC ← 0
  transform(node.left, k, leftS, leftC)
  transform(node.right, k, rightS, rightC)
  If node.left ≠ null AND node.right ≠ null then
    If (leftS + rightS) MOD k = 0 then
      node.value ← leftC + rightC
    Else
      node.value ← leftC * rightC
    EndIf
    s ← leftS + rightS + node.value
    c ← leftC + rightC + 1
  Else
    If node.value MOD 2 = 0 then
      s ← node.value
      c ← 1
    Else
      s ← 0
      c ← 0
    EndIf
  EndIf
EndAlgorithm

Pentru apelul Transform(4, 3, 0, 0), care va fi valoarea nodului rădăcină după execuția algoritmului?

21 / 32