\contentsline {section}{\numberline {1}Abstract Data Types}{2}{section.1}% \contentsline {subsection}{\numberline {1.1}Stacks \& Queues}{2}{subsection.1.1}% \contentsline {subsubsection}{\numberline {1.1.1}Stacks}{2}{subsubsection.1.1.1}% \contentsline {subsubsection}{\numberline {1.1.2}Queues}{2}{subsubsection.1.1.2}% \contentsline {subsection}{\numberline {1.2}Linked Lists}{3}{subsection.1.2}% \contentsline {subsubsection}{\numberline {1.2.1}Implementation of Linked Lists}{3}{subsubsection.1.2.1}% \contentsline {subsubsection}{\numberline {1.2.2}Singly Linked List Class}{4}{subsubsection.1.2.2}% \contentsline {section}{\numberline {2}Algorithm Analysis}{5}{section.2}% \contentsline {subsection}{\numberline {2.1}Algorithm Analysis Basics}{5}{subsection.2.1}% \contentsline {subsubsection}{\numberline {2.1.1}Counting Primitive Operations}{5}{subsubsection.2.1.1}% \contentsline {subsection}{\numberline {2.2}O Notation}{5}{subsection.2.2}% \contentsline {subsubsection}{\numberline {2.2.1}Important Functions Used in O Notation}{6}{subsubsection.2.2.1}% \contentsline {subsubsection}{\numberline {2.2.2}Efficiency \& O Notation}{7}{subsubsection.2.2.2}% \contentsline {subsection}{\numberline {2.3}Recursion Review}{7}{subsection.2.3}% \contentsline {section}{\numberline {3}Dynamic Programming}{7}{section.3}% \contentsline {subsection}{\numberline {3.1}More Big Greek Letters}{8}{subsection.3.1}% \contentsline {subsection}{\numberline {3.2}P, NP, \& NP-Complete Problems}{9}{subsection.3.2}% \contentsline {section}{\numberline {4}Searching \& Sorting}{10}{section.4}% \contentsline {subsection}{\numberline {4.1}Keys \& Values}{10}{subsection.4.1}% \contentsline {subsection}{\numberline {4.2}Java Interface: Comparator}{10}{subsection.4.2}% \contentsline {subsection}{\numberline {4.3}Java Interface: Comparable}{10}{subsection.4.3}% \contentsline {subsection}{\numberline {4.4}Insertion Sort}{10}{subsection.4.4}% \contentsline {subsection}{\numberline {4.5}Shell Sort}{12}{subsection.4.5}% \contentsline {subsection}{\numberline {4.6}Quick Sort}{12}{subsection.4.6}% \contentsline {section}{\numberline {5}Trees}{13}{section.5}% \contentsline {subsection}{\numberline {5.1}Binary Trees}{13}{subsection.5.1}% \contentsline {subsection}{\numberline {5.2}Generics in Java}{13}{subsection.5.2}% \contentsline {section}{\numberline {6}Search Trees}{14}{section.6}% \contentsline {subsection}{\numberline {6.1}Binary Search Trees}{14}{subsection.6.1}%