355
 правок
Изменения
→Удаление
 | [[Файл:Bst_del3.png|900px]]
 |}
 '''delete'''(Node root, Node z) 							//корень дереваподдерева, удаляемый элемент   Node x, y										//x - элемент, который нужно поместить вместо y   '''if''' z.left =!= null '''orand''' z.right !=null			//если z имеет двух детей      y = null		'''next'''(z)					//y - удаляемый элемент, если тот имеет не более одного ребенкаследующий за удаляемым, x - null      x = null      '''if''' y == y.parent.left         y .parent.left = z					null         '''else'''						         y.parent.right = null      z.key = y.key					//иначе - следующий за нимподвешиваем y вместо z      z.data = y .data   '''else if''' z.left != null '''nextor'''(z)				.right != null		//eсли z имеет одного ребенка      y = z						//y - удаляемый элемент         '''if''' y.left != null								//x - ребенок y               x = y.left				         '''else'''               x = y.right   '''else'''							//если z не имеет детей      y = z						//y - удаляемый элемент, x - null      x = null   '''if''' x != null										//подвешиваем x вместо y
      x.parent = y.parent			
   '''if''' y.parent == null
      '''else'''
         y.parent.right = x
== Ссылки ==
