Is the operation of deletion “commutative” in the sense that deleting \(x\) and then \(y\) from a binary search tree leaves the same tree as deleting \(y\) and then \(x\)? Argue why it is or give a counterexample.
Deletion is not always commutative. Suppose we are deleting nodes 2 and 1 in both possible orders for the following binary search tree \(T\):
Consider deleting nodes \(1\) and \(2\) in ascending order:
Now consider deleting nodes \(1\) and \(2\) in the alternative order:
The following LaTeX code was used to generate the above binary search tree \(T\):
\documentclass[12pt,a4paper]{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[
every node/.style = {minimum width = 2em, draw, circle},
shade/.style = {fill=black!15},
level/.style = {sibling distance = 20mm/#1}
]
\node {2}
child {node {1}
child {edge from parent[draw = none]}
child {edge from parent[draw = none]}}
child {node {4}
child {node {3}}
child {edge from parent[draw = none]}};
\end{tikzpicture}
\end{document}
The following LaTeX code was used to generate the above pair of binary search trees in order 2:
\documentclass[12pt,a4paper]{article}
\usepackage[labelformat=empty]{caption}
\usepackage{tikz}
\tikzset{mynode/.style={inner sep=2pt,fill,outer sep=0,circle}}
\newcommand{\mycaption}[2]{\caption[#1]{\textbar\, \textbf{#1.} #2}}
\begin{document}
\begin{center}
\begin{tikzpicture}[
every node/.style = {minimum width = 2em, draw, circle},
shade/.style = {fill=black!15},
level/.style = {sibling distance = 20mm/#1}
]
\node {2}
child {edge from parent[draw = none]}
child {node {4}
child {node {3}}
child {edge from parent[draw = none]}};
\end{tikzpicture}
\hspace{1cm}
\begin{tikzpicture}[
every node/.style = {minimum width = 2em, draw, circle},
shade/.style = {fill=black!15},
level/.style = {sibling distance = 20mm/#1}
]
\node {4}
child {node {3}}
child {edge from parent[draw = none]};
\end{tikzpicture}
\end{center}
\captionof{figure}{TREE-DELETE(T, 1) then TREE-DELETE(T, 2)}
\end{document}
The following LaTeX code was used to generate the above pair of binary search trees in order 2:
\documentclass[12pt,a4paper]{article}
\usepackage[labelformat=empty]{caption}
\usepackage{tikz}
\tikzset{mynode/.style={inner sep=2pt,fill,outer sep=0,circle}}
\newcommand{\mycaption}[2]{\caption[#1]{\textbar\, \textbf{#1.} #2}}
\begin{document}
\begin{center}
\begin{tikzpicture}[
every node/.style = {minimum width = 2em, draw, circle},
shade/.style = {fill=black!15},
level/.style = {sibling distance = 20mm/#1}
]
\node {3}
child {node {1}
child {edge from parent[draw = none]}
child {edge from parent[draw = none]}}
child {node {4}
child {edge from parent[draw = none]}
child {edge from parent[draw = none]}};
\end{tikzpicture}
\hspace{1cm}
\begin{tikzpicture}[
every node/.style = {minimum width = 2em, draw, circle},
shade/.style = {fill=black!15},
level/.style = {sibling distance = 20mm/#1}
]
\node {3}
child {edge from parent[draw = none]}
child {node {4}
child {edge from parent[draw = none]}
child {edge from parent[draw = none]}};
\end{tikzpicture}
\end{center}
\captionof{figure}{TREE-DELETE(T, 2) then TREE-DELETE(T, 1)}
\end{document}