рдПрдП-рдЯреНрд░реА рдпрд╛ рд╕рд┐рдВрдкрд▓ рдмрд╛рдЗрдирд░реА рдЯреНрд░реА

рд╣рдмреАрдм ( рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ ) рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреЗрдбрд╝реЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред



рдПрдП-рдЯреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╣ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ "рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдХрд╛рд░рдг, рд╕рдВрдЪрд╛рд▓рди рд▓рд╛рд▓-рдХрд╛рд▓реЗ рдкреЗрдбрд╝реЛрдВ (рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдорд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдХреЗ) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред"



рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдП рдкреЗрдбрд╝ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХреЗ рд╣рдХрджрд╛рд░ рд╣реИрдВред



рдХреНрдпреЛрдВ?



рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рддреЗрдЬрд╝ (рдпрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝) рдмрд╛рдЗрдирд░реА рдЯреНрд░реА рд╣реИред



рдореИрдВ рдПрд╡реАрдПрд▓ рдФрд░ рд▓рд╛рд▓-рдХрд╛рд▓реЗ рдкреЗрдбрд╝ рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдФрд░ рд╡рд┐рд▓реЛрдкрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рдмрд╛рд╣рд░ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИред рдХреНрдпреЛрдВ?



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреЗрдбрд╝ рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдВрддреБрд▓рди рд╣реИ, рдЕрд░реНрдерд╛рдд, рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╕реВрдЪреА рдореЗрдВ рдЕрдз: рдкрддрди рдХреЗ рдкреНрд░рддрд┐рд░реВрдкред рдЖрдорддреМрд░ рдкрд░, рдЬрдм рдПрдХ рдкреЗрдбрд╝ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрдЯрд┐рдХрд▓ рдХреА рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдПрдП-рдЯреНрд░реА рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЕрд░реНрдиреЗ рдПрдВрдбрд░рд╕рди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдкреЗрдбрд╝ рдХреЗ рд╕рдВрддреБрд▓рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдПрдХ рдкреЗрдбрд╝ рдХреА рдЬрдбрд╝ рд╕реЗ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рдХреА рдУрд░ рдмрдврд╝рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐, рдкрддреНрддрд┐рдпреЛрдВ рдкрд░ рдЦрдбрд╝рд╛ рд╣реИ), рддреЛ рдХрд┐рд╕реА рднреА рдкрддреНрддреА рдХреЗ рд╢реАрд░реНрд╖ рдХрд╛ рд╕реНрддрд░ 1 рд╣реЛрдЧрд╛ред рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ, Arne рдПрдВрдбрд░рд╕рди рдПрдХ рд╕рд░рд▓ рдирд┐рдпрдо рджреЗрддрд╛ рд╣реИ рдХрд┐ рдПрдХ AA рдкреЗрдбрд╝ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:



рдЖрдк рдПрдХ рд╣реА рд╕реНрддрд░ рдХреЗ рдПрдХ рдФрд░ рд╢реАрд░реНрд╖ рдХреЛ рдПрдХ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдВрд▓рдЧреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рдХреЗрд╡рд▓ рджрд╛рдИрдВ рдУрд░ ред



(рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ, рдПрдП-рдЯреНрд░реА рдХреЗ рд▓реЗрдЦрдХ 2-3 рдкреЗрдбрд╝реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рд░ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ)ред



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╢рд┐рдЦрд░ рд╕реНрддрд░ рдХреА рд╢реБрд░реВ рдХреА рдЧрдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╢рд┐рдЦрд░ рдКрдВрдЪрд╛рдИ (рдЬрдореАрди рд╕реЗ рджреВрд░реА) рдХреЗ рд╕рд╛рде рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдо "рдПрдХ рд╕реНрддрд░ рдкрд░ рдПрдХ рд╕рд╣реА рдХрдиреЗрдХреНрд╢рди" рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╕рдордп рдкреЗрдбрд╝ рд╕рдВрддреБрд▓рди рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред



рдПрдП рдкреЗрдбрд╝ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ 2 ( рджреЛ ) рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рдЙрдиреНрд╣реЗрдВ рдирд┐рдпрдо "рдПрдХ рд╕рд╣реА рдПрдХрд▓-рд╕реНрддрд░реАрдп рдХрдиреЗрдХреНрд╢рди" рд╕реЗ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИ: рдпрд╣ рдПрдХ рд╣реА рд╕реНрддрд░ рдкрд░ рдмрд╛рдПрдВ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдиреНрдореВрд▓рди рдФрд░ рдПрдХ рд╣реА рд╕реНрддрд░ рдкрд░ рджреЛ рд╕рд╣реА рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдиреНрдореВрд▓рди рд╣реИред



рдЗрди рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЛ рдХреНрд░рдорд╢рдГ рддрд┐рд░рдЫрд╛ рдФрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдореВрд▓ рдХрд╛рд░реНрдп рдореЗрдВ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ, рдХреНрд╖реИрддрд┐рдЬ рддреАрд░ рдПрдХ рд╕реНрддрд░ рдХреЗ рдХреЛрдиреЗ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдФрд░ рдЭреБрдХрд╛рд╡ (рдКрд░реНрдзреНрд╡рд╛рдзрд░) - рд╡рд┐рднрд┐рдиреНрди рд╕реНрддрд░реЛрдВ рдХреЗ рдХреЛрдиреЗ рдХреЗ рдмреАрдЪред



рддрд┐рд░рдЫрд╛, рдПрдХ рд╣реА рд╕реНрддрд░ рдкрд░ рдмрд╛рдПрдВ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдиреНрдореВрд▓рди

рдЫрд╡рд┐



рд╡рд┐рднрд╛рдЬрд┐рдд, рдПрдХ рд╣реА рд╕реНрддрд░ рдкрд░ рджреЛ рд╕рд╣реА рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛

рдЫрд╡рд┐



рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдПрдП рдкреЗрдбрд╝ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдЬреИрд╕рд╛ рдХреНрдпрд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдиреАрдЪреЗ рдХреЗ рддрд▓ (" рдЬрдореАрди ") рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕рдХрд╛ рд╕реНрддрд░ рд╣рдореЗрд╢рд╛ 0 рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХрдиреЗрдХреНрд╢рди рдЙрд╕рдХреЗ рд▓рд┐рдП рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдкрддреНрддреА рдХреЛрдиреЗ рд▓рд┐рдВрдХ рдореЗрдВ 0 рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдиреАрдЪреЗ рдХреА рдУрд░ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред



рд╣реИрдмреЗ рдкрд░ рдбреЗрд▓реНрдлреА рдХреЗ рд╣рдлреНрддреЛрдВ рдХреЗ рднреАрддрд░, рд╕реНрд░реЛрдд рдХреЛрдб рдбреЗрд▓реНрдлреА рдХреЗ рд╕рдорд╛рди рдЫрджреНрдордХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдЧрд╛ ( рдХреЙрдлреА рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП C ++: рдСрдкрд░реЗрд╢рди P ^ .x рдбреЗрд▓реНрдлреА рдореЗрдВ P-> x рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЪрд░ рд╕рдВрджрд░реНрдн рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореВрд▓реНрдп рд╕реЗ рдирд╣реАрдВред рдпрд╛рдиреА, рдмрджрд▓рддреЗ рд╕рдордп, рдмрд╛рд╣рд░реА рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкрд░рд┐рд╡рд░реНрддрди)ред



рдПрдП-рдЯреНрд░реА рдХреЗ рд╢реАрд░реНрд╖ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред



PNode = ^ TNode ;

TNode = рдкреИрдХ рд░рд┐рдХреЙрд░реНрдб

рдмрд╛рдПрдВ , рджрд╛рдПрдВ : PNode ;

рд╕реНрддрд░ : рдкреВрд░реНрдгрд╛рдВрдХ ; // рд╕реНрдХреЗрд▓; рдкрддреНрддрд┐рдпреЛрдВ рдкрд░ 1

рдХреБрдВрдЬреА : рд╕реВрдЪрдХ ; // рдХреБрдВрдЬреА, рдбреЗрдЯрд╛ рд╢реАрд░реНрд╖ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ

рдЕрдВрдд ;





рдирдП рддрддреНрд╡ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИред



рдкреНрд░рдХреНрд░рд┐рдпрд╛ NodeInsert ( var P : PNode ; newkey : рд╕реВрдЪрдХ ) ;

рд╢реБрд░реВ рдХрд░рдирд╛

рдпрджрд┐ рдкреА = рдиреАрдЪреЗ рддреЛ рд╢реБрд░реВ / рд╢реБрд░реВ рдиреАрдЪреЗ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ - рдПрдХ рдирдпрд╛ рд╢реАрд░реНрд╖ рдмрдирд╛рдПрдВ

рдирдпрд╛ ( рдкреА ) ;

рдкреА ^ ред рдмрд╛рдПрдБ : = рдиреАрдЪреЗ ;

рдкреА ^ ред рд╕рд╣реА : = рдиреАрдЪреЗ ;

рдкреА ^ ред рд╕реНрддрд░ : = 1 ;

рдкреА ^ ред рдХреБрдВрдЬреА : = newkey ;

рдЕрдВрдд рдФрд░ рд╢реБрд░реВ

рдЕрдЧрд░ newkey <p ^ ред рдлрд┐рд░ рдЪрд╛рдмреА

NodeInsert ( рдкреА ^ ред рд▓реЗрдлреНрдЯ , рдиреНрдпреВрдХреА )

рдФрд░ рдЕрдЧрд░ newkey> P ^ ред рдлрд┐рд░ рдЪрд╛рдмреА

NodeInsert ( P ^ ред рд╕рд╣реА , newkey )

рдФрд░ рд╢реБрд░реВ рдХрд░реЗрдВ

рдкреА ^ ред рдХреБрдВрдЬреА : = newkey ;

рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ;

рдЕрдВрдд ;

рддрд┐рд░рдЫрд╛ ( рдкреА ) ;

рд╕реНрдкреНрд▓рд┐рдЯ ( рдкреА ) ;

рдЕрдВрдд ;

рдЕрдВрдд ;





рдкреЗрдбрд╝ рдореЗрдВ newkey рдХреБрдВрдЬреА рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, NodeInsert (рд░реВрдЯ, newkey) рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред рд╣рдо рдкреЗрдбрд╝реЛрдВ рдХреА рдЬрдбрд╝ рд╕реЗ рдиреАрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЪрд╛рдмреА рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ; рдкреЗрд╕реНрдЯ; рдКрдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╕рдВрддреБрд▓рди рдмрдирд╛рдПрдВ: рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдХреЗ рд▓рд┐рдП рддрд┐рд░рдЫрд╛ рдФрд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВред



рдирд┐рдХрд╛рд▓рдирд╛ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред



рдкреНрд░рдХреНрд░рд┐рдпрд╛ NodeDelete ( var P : PNode ; newkey : рд╕реВрдЪрдХ ) ;

рд╢реБрд░реВ рдХрд░рдирд╛



рдпрджрд┐ P <> рдиреАрдЪреЗ рд╣реИ рддреЛ рд╢реБрд░реВ рдХрд░реЗрдВ



// 1. рдиреАрдЪреЗ рдЬрд╛рдПрдВ рдФрд░ рдЖрдЦрд┐рд░реА рдФрд░ рдбрд┐рд▓реАрдЯ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ

рдЕрдВрддрд┐рдо : = рдкреА ;

рдЕрдЧрд░ рддреБрд▓рдирд╛ рдХрд░реЗрдВ ( newkey , P ) < 0 рддреЛ // newkey <key

NodeDelete ( рдкреА ^ ред рд▓реЗрдлреНрдЯ , рдиреНрдпреВрдХреА )

рдФрд░ рд╢реБрд░реВ рдХрд░реЗрдВ

рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ : = рдкреА ;

рдиреЛрдбрдбреЗрд▓реЗрдЯ ( рдкреА ^ ред рд░рд╛рдЗрдЯ , рдиреНрдпреВрдХреА ) ;

рдЕрдВрдд ;



// 2. рдЕрдЧрд░ рдкрд╛рдпрд╛ рдЧрдпрд╛ рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ

рдпрджрд┐ ( P = рдЕрдВрддрд┐рдо ) рдФрд░ ( рд╣рдЯрд╛рдП рдЧрдП <> рддрд▓ ) рдФрд░ ( newkey == рд╣рдЯрд╛рдП рдЧрдП рдХреБрдВрдЬреА ред ) рддреЛ рд╢реБрд░реВ рдХрд░реЗрдВ

рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ ред рдХреБрдВрдЬреА : = рдкреА ^ ред рдХреБрдВрдЬреА ;

рд╣рдЯрд╛ рджрд┐рдпрд╛ : = рдиреАрдЪреЗ ;

P : = P ^ ред рд╕рд╣реА ;

рдЕрдВрддрд┐рдо рд╣рдЯрд╛рдПрдВ ;

рдЕрдВрдд рдореЗрдВ рдЕрдЧрд░ ( P ^ ред рдмрд╛рдПрдБ ред рд╕реНрддрд░ <P ^ ред рд╕реНрддрд░ - 1 ) рдпрд╛ ( P ^ ред рджрд╛рдпрд╛рдБ ред рд╕реНрддрд░ <P ^ ред рд╕реНрддрд░ - 1 ) рдлрд┐рд░ рд╢реБрд░реВ рдХрд░реЗрдВред

// 3. рдКрдкрд░ рдЬрд╛рддреЗ рд╕рдордп рд╕рдВрддреБрд▓рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВ

рджрд┐рд╕рдВрдмрд░ ( рдкреА ^ рд╕реНрддрд░ ) ;

рдпрджрд┐ рдкреА ^ ред рд╕рд╣реА рд╣реИ ред рд╕реНрддрд░ > рдкреА ^ ред рд╕реНрддрд░ рддрдм рдкреА ^ ред рд╕рд╣реА рд╣реИ ред рд╕реНрддрд░ : = рдкреА ^ ред рд╕реНрддрд░ ;

рддрд┐рд░рдЫрд╛ ( рдкреА ) ;

рддрд┐рд░рдЫрд╛ ( рдкреА ^ рдЕрдзрд┐рдХрд╛рд░ ) ;

рддрд┐рд░рдЫрд╛ ( рдкреА ^ ред рд░рд╛рдЗрдЯ ^ рд░рд╛рдЗрдЯ ) ;

рд╕реНрдкреНрд▓рд┐рдЯ ( рдкреА ) ;

рд╕реНрдкреНрд▓рд┐рдЯ ( рдкреА ^ ред рд░рд╛рдЗрдЯ ) ;

рдЕрдВрдд ;

рдЕрдВрдд ;



рдЕрдВрдд ;



рджреЛ рд╕рд╣рд╛рдпрдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╣рдЯрд╛рдП рдЧрдП рдФрд░ рдЕрдВрддрд┐рдоред рдЬрдм рдкреЗрдбрд╝ рдХреЗ рдиреАрдЪреЗ рдЙрддрд░рддреЗ рд╣реИрдВ (рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рджреМрд░рд╛рди), рд╣рдЯрд╛рдП рдЧрдП рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╡рд░реНрдЯреЗрдХреНрд╕ рдХреБрдВрдЬреА рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рд╢реАрд░реНрд╖ рдХреБрдВрдЬреА рдХреЛ рд╣рдЯрд╛рдП рдЧрдП рд╕реЗ рдХрдо рд╣реИ, рддреЛ рдмрд╛рдПрдВ рд▓рд┐рдВрдХ рдкрд░ рдЬрд╛рдПрдВ, рдЕрдиреНрдпрдерд╛ - рджрд╛рдИрдВ рдУрд░ (рдпрд╛рдиреА, рдХреБрдВрдЬреА рдорд┐рд▓рд╛рди рд╣реЛрдиреЗ рдкрд░ рднреА рджрд╛рдИрдВ рдУрд░ рдЬрд╛рдПрдВ)ред рдЕрдВрдд рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░реИрд╡рд░реНрд╕ рдХрд┐рдП рдЧрдП рд╢реАрд░реНрд╖ рдХреЛ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдореЗрдВ - рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЬрд╣рд╛рдВ "рд╕рд╣реА рдирд┐рдХрд▓рд╛ред"



рдЬрдм рдкреЗрдбрд╝ рдХреЗ рдиреАрдЪреЗ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдЯрд╛рдП рдЧрдП рдмрд┐рдВрджреБ рдХреЛ рдЙрд╕ рд╢реАрд░реНрд╖ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреА рдХреБрдВрдЬреА рд╕реНрдерд┐рдд рд╣реЛрддреА рд╣реИ (рдпрджрд┐ рд╡рд╣ рдкреЗрдбрд╝ рдореЗрдВ рд╣реИ), рдФрд░ рдЕрдВрддрд┐рдо рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╢реАрд░реНрд╖ (рдпрд╣ рд╡рд╣реА рд╢реАрд░реНрд╖ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рдХреБрдВрдЬреА рдХреЛ рдкрд┐рдЫрд▓реА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рд╢реАрд░реНрд╖ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдЕрдЧрд▓рд╛, рд╕рдВрддреБрд▓рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЖрдкрдХреЛ 3 рддрд┐рд░рдЫрд╛ рдФрд░ 2 рд╡рд┐рднрд╛рдЬрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред



рддрд┐рд░рдЫрд╛ рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрдо рдмрд╛рдд рд╣реИред



// рд░рд┐рдХреЙрд░реНрдб рдХреЗ _content_ рдХреЛ рд╕реНрд╡реИрдк рдХрд░реЗрдВ (рдкреЙрдЗрдВрдЯрд░реНрд╕ рдирд╣реАрдВ)

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡реИрдк ( P1 , P2 : PNode ) ;

рд╡рд░

tmp : TNode ;

рд╢реБрд░реВ рдХрд░рдирд╛

tmp : = P1 ^ ;

рдкреА 1 ^ : = рдкреА 2 ^ ;

P2 ^ : = tmp ;

рдЕрдВрдд ;



рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрд┐рд░рдЫрд╛ ( рдЯреА : PNode ) ;

рд╡рд░

рдПрд▓ : рдкреАрдпреЛрдб ;

рд╢реБрд░реВ рдХрд░рдирд╛

рдПрд▓ : = рдЯреА ^ ред рдЫреЛрдбрд╝ рджрд┐рдпрд╛ ;

рдпрджрд┐ рдЯреА ^ ред рд╕реНрддрд░ = рдПрд▓ ^ ред рд╕реНрддрд░ рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ

рд╕реНрд╡реИрдк ( рдЯреА , рдПрд▓ ) ; // рдЕрдм рдЯреА ==> рдПрд▓, рдПрд▓ ==> рдЯреА

рдПрд▓ ^ ред рдмрд╛рдпрд╛рдВ : = рдЯреА ^ ред рд╕рд╣реА ; // рдЕрд░реНрдерд╛рдд T.left = L.right

рдЯреА ^ ред рд╕рд╣реА : = рдПрд▓ ; // рдЕрд░реНрдерд╛рдд L.right = T

рдЕрдВрдд ;

рдЕрдВрдд ;



рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднрд╛рдЬрд┐рдд ( рдЯреА : PNode ) ;

рд╡рд░

рдЖрд░ : рдкреАрдиреЛрдб ;

рд╢реБрд░реВ рдХрд░рдирд╛

рдЖрд░ : = рдЯреА ^ ред рд╕рд╣реА ;

рдпрджрд┐ рдЯреА ^ ред рд╕реНрддрд░ = рдЖрд░ ^ ред рд╕рд╣реА ^ рд╕реНрддрд░ рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ

рд╕реНрд╡реИрдк ( рдЯреА , рдЖрд░ ) ; // рдЕрдм рдЯреА ==> рдЖрд░, рдЖрд░ ==> рдЯреА

рдЖрд░ ^ ред рд╕рд╣реА : = рдЯреА ^ ред рдЫреЛрдбрд╝ рджрд┐рдпрд╛ ;

рдЯреА ^ ред рдмрд╛рдпрд╛рдВ : = рдЖрд░ ;

рдЗрдВрдХ ( рдЯреА ^ рд╕реНрддрд░ ) ;

рдЕрдВрдд ;

рдЕрдВрдд ;





рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рджрд┐рдП рдЧрдП рдЫрджреНрдо рдХреЛрдб рдПрдХ рдПрдП-рдЯреНрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (рдХреЗрд╡рд▓ "рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝реЗрдВ" рдЬреИрд╕реЗ рдПрдХ рдкреЗрдбрд╝ рдХреА рдЬрдбрд╝ (рдЬрдбрд╝), рдЖрджрд┐ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ)ред



рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ



рд╕реА рдореЗрдВ рдПрдП рдкреЗрдбрд╝ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди ред



рдПрдХ рдЕрджреНрднреБрдд рдРрдкрд▓реЗрдЯ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреЗрдбрд╝реЛрдВ (рдПрдП рдкреЗрдбрд╝реЛрдВ рд╕рд╣рд┐рдд) рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред



рдПрдП рдкреЗрдбрд╝ рджреГрд╢реНрдп рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдбреЗрд▓реНрдлреА рдкрд░рд┐рдпреЛрдЬрдирд╛ ред



рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ ред



All Articles