\begin{algorithm}
\caption{Singly Circular Linked List}
\begin{algorithmic}
\ENSURE Implementation of dictionary operations with singly circular linked list
\PROCEDURE{Insert}{$L, x$}
\STATE $x.next = L.nil.next$
\STATE $L.nil.next = L$
\ENDPROCEDURE
\STATE
\PROCEDURE{Delete}{$L, x$}
\STATE $p = L.nil$
\WHILE{$p.next \ne x$}
\IF{$p.next == L.nil$}
\STATE \textbf{error} "$x$ doesn't exist in $L$"
\ENDIF
\STATE $p = p.next$
\ENDWHILE
\STATE $p.next = x.next$
\ENDPROCEDURE
\STATE
\PROCEDURE{Search}{$L, k$}
\STATE $x = L.nil.next$
\WHILE{$x \ne L.nil$ \AND $x.key \ne k$}
\STATE $x = x.next$
\ENDWHILE
\RETURN $x$
\ENDPROCEDURE
\end{algorithmic}
\end{algorithm}