Professional Documents
Culture Documents
indicatori de adres. Arborele binar se definete recursiv astfel: 1. Un nod este un arbore binar 2. Un nod ce conine legturi ctre ali doi arbori binari este un arbore binar Prin convenie, arborele vid nu conine nici un nod. Nodul spre care nu este ndreptat nici o legtur se numete rdcin
Cei doi arbori conectai la rdcin se numesc subarborele stng i subarborele drept. Un nod la care nu este conectat nici un subarbore este un nod terminal, n caz contrar este neterminal. n programele de mai jos se vor utiliza urmtoarele notaii: x^.st - subarborele stng x^.dr - subarborele drept x^.par - printele nodului
6
9 st dr
5 st dr 3
nil nil
14
st dr 7
nil
10
nil nil
16
nil nil
st dr
6
nil nil
8
nil nil
Var rad:Nod; procedure intr(var x:Nod;k:integer); begin if if x=nil x=nil then then begin new(x); x^.inf:=k; x^.st:=nil; x^.dr:=nil; end else if k>x^.inf then intr(x^.dr,k) else intr(x^.st,k); end; begin intr(rad,6); end.
9 st dr
5 st dr 3
nil nil
14
st dr 7 st dr 10
nil nil
Var rad:Nod; procedure parcurge(x:Nod); begin if x^.st<>nil then parcurge(x^.st); Write(x^.info, ); ); if x^.dr<>nil then parcurge(x^.dr); end; begin parcurge(rad); end.
16
nil nil
6
nil nil
8
nil nil
5 6 7 8
9 10 14 16
Parcurgerea n preordine sau traversarea RSD: 1) se viziteaz rdcina 2) se viziteaz subarborele stng 3) se viziteaz subarborele drept Parcurgerea n inordine sau traversarea SRD: 1) se viziteaz subarborele stng 2) se viziteaz rdcina 3) se viziteaz subarborele drept Parcurgerea n postordine sau traversarea SDR: 1) se viziteaz subarborele stng 2) se viziteaz subarborele drept 3) se viziteaz rdcina
5 7 6 9
NIL
9 st dr 5 st dr 3
nil nil
14 st dr 7 10
nil nil
Var rad,res:Nod; function gaseste(k:Integer):Nod; var x:Nod; begin x:=rad; while (x<>nil) and (k<>x^.info) do begin if (k<x^.info) then x:=x^.st else x:=x^.dr; end; gaseste:=x; end; begin res:=gaseste(6); end.
16
nil nil
st dr
6 8
nil nil
nil nil
NIL
9 st dr 5 st dr 3
nil nil
Var rad,res:Nod; function minim:Nod; var x:Nod; begin x:=rad; while (x^.st<>nil) do x:=x^.st; minim:=x; end; begin res:=minim; end.
14 st dr 7 10
nil nil
16
nil nil
st dr
6 8
nil nil
nil nil