118 lines
3.4 KiB
TeX
118 lines
3.4 KiB
TeX
\documentclass{article}
|
|
\usepackage{graphicx}
|
|
\graphicspath{ {./images/} }
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{float}
|
|
\usepackage{indentfirst}
|
|
\setlength{\parskip}{\baselineskip}%
|
|
|
|
\title{CS 7353: Analysis of Algorithms Project: Red-Black Tree}
|
|
\author{Noah Schrick}
|
|
\date{April 21, 2022}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
\tableofcontents
|
|
|
|
\section{Problem Introduction}
|
|
|
|
\section{Program Platform and Submission Files}
|
|
This problem was solved using C++ on a Linux system.
|
|
Attached with the submission is a zip folder that contains:
|
|
\begin{itemize}
|
|
\item{A CMakeLists.txt file for compiling}
|
|
\item{An "images" folder that contains:}
|
|
\begin{enumerate}
|
|
\item{Various images included in this report}
|
|
\end{enumerate}
|
|
\item{A "src" folder that contains:}
|
|
\begin{enumerate}
|
|
\item{A Node.cpp and Node.h file for the Node class and associated functions}
|
|
\item{A Red-Black.cpp and Red-Black.h file for the Red-Black Tree class and
|
|
associated functions}
|
|
\item{The main file}
|
|
\end{enumerate}
|
|
\item{A "build" folder that contains:}
|
|
\begin{enumerate}
|
|
\item{A build.sh script to simplify the build process}
|
|
\item{A run.sh script to simplify running the program}
|
|
\item{Various CMake files}
|
|
\item{The compiled binaries for the program and associated libraries}
|
|
\end{enumerate}
|
|
\item{Various LaTeX files used in the generation of this report.}
|
|
\end{itemize}
|
|
|
|
This program offers no guarantee of functionality on other Operating Systems. Testing was only conducted on the local Linux machine.
|
|
|
|
\section{Programming Approach}
|
|
\subsection{Node Class}
|
|
|
|
\subsection{Red-Black Tree Class}
|
|
|
|
\subsubsection{Constructing the Problem}
|
|
|
|
\subsubsection{Generating the Solution}
|
|
|
|
\subsubsection{Printing the solution} \label{sec:print}
|
|
|
|
|
|
\section{Results}
|
|
\subsection{Part 1.B: ``Tree 1"}
|
|
\begin{figure}[htp]
|
|
\centering
|
|
\includegraphics[width=\linewidth]{"./images/b_init_tree.png"}
|
|
\vspace{.2truein} \centerline{}
|
|
\caption{Part 1.B: Initial Tree After Key Insertions}
|
|
\label{fig:b_init}
|
|
\end{figure}
|
|
|
|
\begin{figure}[htp]
|
|
\centering
|
|
\includegraphics{"./images/b_del_12.png"}
|
|
\vspace{.2truein} \centerline{}
|
|
\caption{Part 1.B: Tree After Deleting Key 12}
|
|
\label{fig:b_12}
|
|
\end{figure}
|
|
|
|
\begin{figure}[htp]
|
|
\centering
|
|
\includegraphics{"./images/b_ins_32.png"}
|
|
\vspace{.2truein} \centerline{}
|
|
\caption{Part 1.B: Tree After Inserting Key 32}
|
|
\label{fig:b_32}
|
|
\end{figure}
|
|
|
|
\begin{figure}[htp]
|
|
\centering
|
|
\includegraphics{"./images/b_del_41.png"}
|
|
\vspace{.2truein} \centerline{}
|
|
\caption{Part 1.B: Tree After Deleting Key 41}
|
|
\label{fig:b_41}
|
|
\end{figure}
|
|
|
|
\subsection{Part 1.C: ``Tree 2"}
|
|
\begin{figure}[htp]
|
|
\includegraphics[width=\linewidth]{"./images/c_init_tree.png"}
|
|
\vspace{.2truein} \centerline{}
|
|
\caption{Part 1.C: Initial Tree After Key Insertions}
|
|
\label{fig:b_init}
|
|
\end{figure}
|
|
|
|
\begin{figure}[htp]
|
|
\includegraphics[width=\linewidth]{"./images/c_del_127.png"}
|
|
\vspace{.2truein} \centerline{}
|
|
\caption{Part 1.C: Tree After Deleting Key 127}
|
|
\label{fig:c_127}
|
|
\end{figure}
|
|
|
|
\begin{figure}[htp]
|
|
\includegraphics[width=\linewidth]{"./images/c_del_221.png"}
|
|
\vspace{.2truein} \centerline{}
|
|
\caption{Part 1.C: Tree After Deleting Key 221}
|
|
\label{fig:c_221}
|
|
\end{figure}
|
|
|
|
\section{Part 2: Red-Black Discussion}
|
|
|
|
\end{document} |