Question: ( Python ) K dol si probl ma: add bin ris faf ggv ny ( egyens lyt nyez friss t
PythonKdolsi problma: add binris fafggvny egyenslytnyez frisstssel
Eladsunkban s az AVL fa sszeadsi mvelet laboratriumi megvalstsaiban ZX ismtelten jraszmoltuk a rszfk magassgt hogy meghatrozzuk egy adott csompont egyenslyi tnyezjt Kiderlt hogy ez szksgtelen s nem hatkony mivel egyszeren nyomon kvethetjk s fokozatosan frissthetjk az egyenslytnyezket mikzben csompontokat adunk a fhoz
A csompont egyenslytnyezjnek frisstsre vonatkoz szablyok egyszerek Vegyk fontolra egy rtk hozzadst valamelyik n csompont bal oldali rszfjhoz:
ha n bal oldali rszfja korbban res volt, akkor az n egyenslytnyezje gyel cskken
egybknt ha az n bal oldali rszfa gyknek egyenslytnyezje nagysgrendileg nvekszik egy rtk hozzadsa utn akkor az n egyenslytnyezje gyel cskken
egybknt n egyenslytnyezje vltozatlan
A csompont jobb rszfjhoz valrtk hozzadsnak szablyai szimmetrikusak, kivve hogy az egyenslytnyezgyel cskken nem pedig nvekszik
Ehhez a problmhoz jra kell implementlni az add metdust egy BSTree osztlyhoz hogy az egyenslyi tnyezket tartson fenn az egyes csompontok bf attribtumban Ne feledje, hogy a hozzadsi mdszer nem hajthat vgre semmilyen forgatsts nem ksrelheti meg ms mdon kiegyenslyozni a ft Nem szabad kiszmolnia egyetlen csompont magassgt sem a megvalstsban
Pldul a kvetkez kddal:
t BSTree
tadd
tadd
tadd
A kvetkez lenne igaz:
troot.bf
troot.left.bf
troot.left.left.bf
BSTree osztly:
osztly csompont:
def initself val, leftNincs, rightNincs, bf:
self.val val
nbal bal
njobb helyes
self.bf bf
def initself:
self.root Nincs
def addself val:
def addrecnode:
# itt a kdod
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
