Question: ( Python ) K dol si probl ma: add bin ris faf ggv ny ( egyens lyt nyez friss t

"(Python)Kdolsi problma: ""add"" binris fafggvny (egyenslytnyez frisstssel)
Eladsunkban s az AVL fa sszeadsi mvelet laboratriumi megvalstsaiban ZX12 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 1-gyel cskken
egybknt, ha az n bal oldali rszfa gyknek egyenslytnyezje nagysgrendileg nvekszik egy rtk hozzadsa utn, akkor az n egyenslytnyezje 1-gyel cskken
egybknt n egyenslytnyezje vltozatlan
(A csompont jobb rszfjhoz valrtk hozzadsnak szablyai szimmetrikusak, kivve, hogy az egyenslytnyez1-gyel 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 forgatst,s nem ksrelheti meg ms mdon kiegyenslyozni a ft. Nem szabad kiszmolnia egyetlen csompont magassgt sem a megvalstsban.
Pldul a kvetkez kddal:
t = BSTree()
t.add(5)
t.add(3)
t.add(1)
A kvetkez lenne igaz:
t.root.bf ==-2
t.root.left.bf ==-1
t.root.left.left.bf ==0
BSTree osztly:
osztly csompont:
def init(self, val, left=Nincs, right=Nincs, bf=0):
self.val = val
n.bal = bal
n.jobb = helyes
self.bf = bf
def init(self):
self.root = Nincs
def add(self, val):
def add_rec(node):
# itt a kdod"

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!