\begin{figure}
\begin{tabular}{l l}
\begin{coden}{3.6in}{1in}
\cunion($\Upsilon_1$, $\Upsilon_2$)				\\
~~~\cif $\Upsilon_1$.root $=$ null \cthen			\\
~~~~~~\creturn $\Upsilon_2$					\\
~~~\cif $\Upsilon_2$.root $=$ null \cthen			\\
~~~~~~\creturn $\Upsilon_1$					\\
~~~\cif $\Upsilon_2$.root.priority $ >\Upsilon_1$.root.priority \cthen \\
~~~~~~($\Upsilon_1$, $\Upsilon_2$) $\leftarrow$ ($\Upsilon_2$, $\Upsilon_1$)\\
~~~($\Upsilon_{2A}$, $v$, $\Upsilon_{2C}$) $\leftarrow$ 
	\csplitlr ($\Upsilon_2$, $\Upsilon_1$.root)		\\
~~~($\Upsilon_{1A}$, $v'$, $\Upsilon_1'$) $\leftarrow$ 
	\csplitlr ($\Upsilon_1$, {\sc greatestValue}($\Upsilon_{2A}$))\\
~~~($\Upsilon_{1B}$, $v''$, $\Upsilon_{1C}$) $\leftarrow$ 
	\csplitlr ($\Upsilon_1'$, {\sc leastValue}($\Upsilon_{2C}$))\\
~~~$\Upsilon_A \leftarrow$ \cunion($\Upsilon_{1A}$, $\Upsilon_{2A}$) \plines \\
~~~$\Upsilon_C \leftarrow$ \cunion($\Upsilon_{1C}$, $\Upsilon_{2C}$) \\
~~~\creturn \cjoinlr($\Upsilon_A$, \cjoinlr($\Upsilon_{1B}$, $\Upsilon_C$))
\end{coden}

&

\begin{coden}{3.6in}{1in}
{\sc greatestValue}($\Upsilon$)					\\
~~~\cif $\Upsilon$.root $=$ null \cthen			\\
~~~~~~\creturn \cneginf						\\
~~~\cif $\Upsilon$.$R \neq$ null \cthen				\\
~~~~~~\creturn $\Upsilon$.$R$.key				\\
~~~\celse							\\
~~~~~~\creturn $\Upsilon$.root
\\ \\ \\ \\ \\ \\
\end{coden}
\end{tabular}
\caption{Pseudocode for \cunion~and for {\sc greatestValue}
\label{fig:gvcode}.\label{fig:maincode}  {\sc leastValue}~is similar to
{\sc greatestValue}.}
\end{figure}
