.


:




:

































 

 

 

 


( )




, . , , , .

, , . , . , , NIL (search = nil).

, , ( ), , ( ).

: P = tree Q = nil Whlie p <> nil do q = p if key = k(p) then search = p return endif if key < k(p) then p = left(p) else p = right(p) endif endwhile v = maketree(key, rec) if q = nil then tree = v else if key < k(q) then left(q) = v else right(q) = v endif endif search = v return : p:= tree; q:= nil; whlie p <> nil do begin q:= p; if key = p^.k then begin search:= p; exit; end; if key < p^.k then p:= p^.left else p:= p^.right; end; v:= maketree(key, rec) if q=nil then tree:=v else if key < q^.k then q^.left:= v else q^.right:= v; search:= v;

. :

1) . .

2) . .

3) . , . :

- ( , , NIL.

- ( , , NIL

( 12 - 11). - ( 12 - 13).

(.5.9).

p - ;

q - ;

v - ;

t - v ;

s - v ( ).

13 v, s - ( . 5.9).

: q = nil p = tree while (p <> nil) and (k(p) <> key) do q = p if key < k(p) then p = left(p) else p = right(p) endif endwhile if p = nil then return endif if left(p) = nil then v = right(p) else if right(p) = nil then v = left(p) else nod(p) - (t v 1 , s - ) t = p v = right(p) s = left(v) while s <> nil do t = v v = s s = left(v) endwhile if t <> p then v p left(t) = right(v) right(v) = right(p) endif left(v) = left(p) endif endif if q = nil then p - tree = v else if p = left(q) then left(q) = v else right(q) = v endif endif freenode(p) return   : q:= nil; p:= tree; while (p <> nil) and (p^.k <> key) do begin q:= p; if key < p^.k then p:= p^.left else p:= p^.right; end; if p = nil then WriteLn( ); exit; end; if p^.left = nil then v:= p^.right else if p^.right = nil then v:= p^.left else begin { (t v 1 , s - )} t:= p; v:= p^.right; s:= v^.left; while s <> nil do begin t:= v; v:= s; s:= v^.left; end; if t <> p then begin WriteLn(v p); t^.left:= v^.right; v^.right:= p^.right; end; v^.left:= p^.left; end; end; if p = q^.left then q^.left:= v else q^.right:= v; end; dispose(p); end;

1. ?

2. ?

3. ?

4. - ?

5. ?

6. ?

7. .

8. , ?

9. , ?

10. ?

11. ?

12. ?

13. , ?





:


: 2016-03-28; !; : 846 |


:

:

, , .
==> ...

1891 - | 1531 -


© 2015-2024 lektsii.org - -

: 0.008 .