\hypertarget{class_odin_a_i_1_1_sparse_graph}{\section{Odin\-A\-I\-:\-:Sparse\-Graph$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ Class Template Reference}
\label{class_odin_a_i_1_1_sparse_graph}\index{Odin\-A\-I\-::\-Sparse\-Graph$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$@{Odin\-A\-I\-::\-Sparse\-Graph$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$}}
}


{\ttfamily \#include $<$Sparse\-Graph.\-h$>$}

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{class_odin_a_i_1_1_sparse_graph_1_1_const_edge_iterator}{Const\-Edge\-Iterator}
\item 
class \hyperlink{class_odin_a_i_1_1_sparse_graph_1_1_const_node_iterator}{Const\-Node\-Iterator}
\item 
class \hyperlink{class_odin_a_i_1_1_sparse_graph_1_1_edge_iterator}{Edge\-Iterator}
\item 
class \hyperlink{class_odin_a_i_1_1_sparse_graph_1_1_node_iterator}{Node\-Iterator}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_a3792cff91e9ead2cca0fd8667c6ca666}{typedef N\-O\-D\-E\-\_\-\-T\-Y\-P\-E {\bfseries Node\-Type}}\label{class_odin_a_i_1_1_sparse_graph_a3792cff91e9ead2cca0fd8667c6ca666}

\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_adc6ca3ba9bc94424d4656066dd2afaf7}{typedef E\-D\-G\-E\-\_\-\-T\-Y\-P\-E {\bfseries Edge\-Type}}\label{class_odin_a_i_1_1_sparse_graph_adc6ca3ba9bc94424d4656066dd2afaf7}

\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_ae8665285ed4230c73acc948f295b36fe}{typedef std\-::vector$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E $>$ {\bfseries Node\-Vector}}\label{class_odin_a_i_1_1_sparse_graph_ae8665285ed4230c73acc948f295b36fe}

\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_a6478f46b477d23f50a573fdb705ab8c5}{typedef std\-::list$<$ E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ {\bfseries Edge\-List}}\label{class_odin_a_i_1_1_sparse_graph_a6478f46b477d23f50a573fdb705ab8c5}

\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_aef938219bbf755809648898fefb75119}{typedef std\-::vector$<$ Edge\-List $>$ {\bfseries Edge\-List\-Vector}}\label{class_odin_a_i_1_1_sparse_graph_aef938219bbf755809648898fefb75119}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_af2910a9b62aa0e5fa7b3ef15514a2711}{{\bfseries Sparse\-Graph} (bool digraph)}\label{class_odin_a_i_1_1_sparse_graph_af2910a9b62aa0e5fa7b3ef15514a2711}

\item 
const Node\-Type \& \hyperlink{class_odin_a_i_1_1_sparse_graph_a1d3a1b01b3b51816632f7a77470624e4}{Get\-Node} (int index) const 
\item 
Node\-Type \& \hyperlink{class_odin_a_i_1_1_sparse_graph_a9736b7385dfa9fc664c3c0a910e73af7}{Get\-Node} (int index)
\item 
const Edge\-Type \& \hyperlink{class_odin_a_i_1_1_sparse_graph_afc3ce77da08ea9e636f5c90b8234aa57}{Get\-Edge} (int from, int to) const 
\item 
Edge\-Type \& \hyperlink{class_odin_a_i_1_1_sparse_graph_a4e6e4624bb545fb1e979a1d900fec018}{Get\-Edge} (int from, int to)
\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_acd92d44ae556c29dbd850f1c55de1706}{int {\bfseries Get\-Next\-Node\-Index} () const }\label{class_odin_a_i_1_1_sparse_graph_acd92d44ae556c29dbd850f1c55de1706}

\item 
int \hyperlink{class_odin_a_i_1_1_sparse_graph_a21bf4c9ef1fb22f73de44b188bff2041}{Add\-Node} (const Node\-Type \&node)
\item 
void \hyperlink{class_odin_a_i_1_1_sparse_graph_aa9e253bffd0796a2ea92e808e021939b}{Remove\-Node} (int node)
\item 
void \hyperlink{class_odin_a_i_1_1_sparse_graph_ad9a5940ef3a9d36a87af65eeaea7e0bf}{Add\-Edge} (const Edge\-Type \&edge)
\item 
void \hyperlink{class_odin_a_i_1_1_sparse_graph_ac8d2ec194ac79f13465091bacb114cbe}{Remove\-Edge} (int from, int to)
\item 
int \hyperlink{class_odin_a_i_1_1_sparse_graph_a4d79a0211dc4fd0a3721f77d86b0e84b}{Num\-Nodes} () const 
\item 
int \hyperlink{class_odin_a_i_1_1_sparse_graph_a1ac655c501a53b331d678d85fb625f69}{Num\-Active\-Nodes} () const 
\item 
int \hyperlink{class_odin_a_i_1_1_sparse_graph_afa90ce4e79d12fa59c6e2adea9cda9cb}{Num\-Edges} () const 
\item 
bool \hyperlink{class_odin_a_i_1_1_sparse_graph_a1bef87df3af0fffdde2150edbed18442}{Is\-Digraph} () const 
\item 
bool \hyperlink{class_odin_a_i_1_1_sparse_graph_ab0bb6e21376d0400790451936d17b3e0}{Is\-Empty} () const 
\item 
bool \hyperlink{class_odin_a_i_1_1_sparse_graph_a5efee2313619e82373a05c396e1d97ba}{Is\-Present} (int node) const 
\item 
void \hyperlink{class_odin_a_i_1_1_sparse_graph_a59911c98e516e79a1d8ee9fb156dcabc}{Clear} ()
\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_ad23cd55316c2086d8fb0dd183cb71a07}{friend {\bfseries Edge\-Iterator}}\label{class_odin_a_i_1_1_sparse_graph_ad23cd55316c2086d8fb0dd183cb71a07}

\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_a7ce2153a85cb2c066f264f0b7c9a2ebb}{friend {\bfseries Const\-Edge\-Iterator}}\label{class_odin_a_i_1_1_sparse_graph_a7ce2153a85cb2c066f264f0b7c9a2ebb}

\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_aa61fefec431153aab71d29866684c2ff}{friend {\bfseries Node\-Iterator}}\label{class_odin_a_i_1_1_sparse_graph_aa61fefec431153aab71d29866684c2ff}

\item 
\hypertarget{class_odin_a_i_1_1_sparse_graph_aac436b43133320381d1e79a905a74860}{friend {\bfseries Const\-Node\-Iterator}}\label{class_odin_a_i_1_1_sparse_graph_aac436b43133320381d1e79a905a74860}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E$>$class Odin\-A\-I\-::\-Sparse\-Graph$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$}

Sparse graph groups together nodes and edges. Implementation is based on the book\-: Programming Game A\-I by Example. 

\subsection{Member Function Documentation}
\hypertarget{class_odin_a_i_1_1_sparse_graph_ad9a5940ef3a9d36a87af65eeaea7e0bf}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Add\-Edge@{Add\-Edge}}
\index{Add\-Edge@{Add\-Edge}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Add\-Edge}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ void {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Add\-Edge (
\begin{DoxyParamCaption}
\item[{const Edge\-Type \&}]{edge}
\end{DoxyParamCaption}
)}}\label{class_odin_a_i_1_1_sparse_graph_ad9a5940ef3a9d36a87af65eeaea7e0bf}
Add edge to graph. \hypertarget{class_odin_a_i_1_1_sparse_graph_a21bf4c9ef1fb22f73de44b188bff2041}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Add\-Node@{Add\-Node}}
\index{Add\-Node@{Add\-Node}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Add\-Node}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ int {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Add\-Node (
\begin{DoxyParamCaption}
\item[{const Node\-Type \&}]{node}
\end{DoxyParamCaption}
)}}\label{class_odin_a_i_1_1_sparse_graph_a21bf4c9ef1fb22f73de44b188bff2041}
Adds a node to the graph, and returns the index. \hypertarget{class_odin_a_i_1_1_sparse_graph_a59911c98e516e79a1d8ee9fb156dcabc}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Clear@{Clear}}
\index{Clear@{Clear}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Clear}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ void {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Clear (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{class_odin_a_i_1_1_sparse_graph_a59911c98e516e79a1d8ee9fb156dcabc}
Clear the whole graph. \hypertarget{class_odin_a_i_1_1_sparse_graph_afc3ce77da08ea9e636f5c90b8234aa57}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Get\-Edge@{Get\-Edge}}
\index{Get\-Edge@{Get\-Edge}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Get\-Edge}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ const E\-D\-G\-E\-\_\-\-T\-Y\-P\-E \& {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Get\-Edge (
\begin{DoxyParamCaption}
\item[{int}]{from, }
\item[{int}]{to}
\end{DoxyParamCaption}
) const}}\label{class_odin_a_i_1_1_sparse_graph_afc3ce77da08ea9e636f5c90b8234aa57}
Returns the edge with the specific from and to parameter. Constant version. \hypertarget{class_odin_a_i_1_1_sparse_graph_a4e6e4624bb545fb1e979a1d900fec018}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Get\-Edge@{Get\-Edge}}
\index{Get\-Edge@{Get\-Edge}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Get\-Edge}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ E\-D\-G\-E\-\_\-\-T\-Y\-P\-E \& {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Get\-Edge (
\begin{DoxyParamCaption}
\item[{int}]{from, }
\item[{int}]{to}
\end{DoxyParamCaption}
)}}\label{class_odin_a_i_1_1_sparse_graph_a4e6e4624bb545fb1e979a1d900fec018}
Returns the edge with the specific from and to parameter. Non-\/const version. \hypertarget{class_odin_a_i_1_1_sparse_graph_a1d3a1b01b3b51816632f7a77470624e4}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Get\-Node@{Get\-Node}}
\index{Get\-Node@{Get\-Node}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Get\-Node}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ const N\-O\-D\-E\-\_\-\-T\-Y\-P\-E \& {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Get\-Node (
\begin{DoxyParamCaption}
\item[{int}]{index}
\end{DoxyParamCaption}
) const}}\label{class_odin_a_i_1_1_sparse_graph_a1d3a1b01b3b51816632f7a77470624e4}
Returns the node by the index. Constant version. \hypertarget{class_odin_a_i_1_1_sparse_graph_a9736b7385dfa9fc664c3c0a910e73af7}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Get\-Node@{Get\-Node}}
\index{Get\-Node@{Get\-Node}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Get\-Node}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E \& {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Get\-Node (
\begin{DoxyParamCaption}
\item[{int}]{index}
\end{DoxyParamCaption}
)}}\label{class_odin_a_i_1_1_sparse_graph_a9736b7385dfa9fc664c3c0a910e73af7}
Returns the node by the index. Non-\/const version. \hypertarget{class_odin_a_i_1_1_sparse_graph_a1bef87df3af0fffdde2150edbed18442}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Is\-Digraph@{Is\-Digraph}}
\index{Is\-Digraph@{Is\-Digraph}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Is\-Digraph}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E$>$ bool {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Is\-Digraph (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{class_odin_a_i_1_1_sparse_graph_a1bef87df3af0fffdde2150edbed18442}
Returns true if this graph is directed. \hypertarget{class_odin_a_i_1_1_sparse_graph_ab0bb6e21376d0400790451936d17b3e0}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Is\-Empty@{Is\-Empty}}
\index{Is\-Empty@{Is\-Empty}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Is\-Empty}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E$>$ bool {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Is\-Empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{class_odin_a_i_1_1_sparse_graph_ab0bb6e21376d0400790451936d17b3e0}
Returns true if this graph does not contain any nodes. \hypertarget{class_odin_a_i_1_1_sparse_graph_a5efee2313619e82373a05c396e1d97ba}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Is\-Present@{Is\-Present}}
\index{Is\-Present@{Is\-Present}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Is\-Present}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ bool {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Is\-Present (
\begin{DoxyParamCaption}
\item[{int}]{node}
\end{DoxyParamCaption}
) const}}\label{class_odin_a_i_1_1_sparse_graph_a5efee2313619e82373a05c396e1d97ba}
Returns true if the node exist in graph. \hypertarget{class_odin_a_i_1_1_sparse_graph_a1ac655c501a53b331d678d85fb625f69}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Num\-Active\-Nodes@{Num\-Active\-Nodes}}
\index{Num\-Active\-Nodes@{Num\-Active\-Nodes}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Num\-Active\-Nodes}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ int {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Num\-Active\-Nodes (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{class_odin_a_i_1_1_sparse_graph_a1ac655c501a53b331d678d85fb625f69}
Returns the number of active nodes. \hypertarget{class_odin_a_i_1_1_sparse_graph_afa90ce4e79d12fa59c6e2adea9cda9cb}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Num\-Edges@{Num\-Edges}}
\index{Num\-Edges@{Num\-Edges}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Num\-Edges}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ int {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Num\-Edges (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{class_odin_a_i_1_1_sparse_graph_afa90ce4e79d12fa59c6e2adea9cda9cb}
Returns the number of edges. \hypertarget{class_odin_a_i_1_1_sparse_graph_a4d79a0211dc4fd0a3721f77d86b0e84b}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Num\-Nodes@{Num\-Nodes}}
\index{Num\-Nodes@{Num\-Nodes}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Num\-Nodes}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ int {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Num\-Nodes (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{class_odin_a_i_1_1_sparse_graph_a4d79a0211dc4fd0a3721f77d86b0e84b}
Returns the number of nodes. \hypertarget{class_odin_a_i_1_1_sparse_graph_ac8d2ec194ac79f13465091bacb114cbe}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Remove\-Edge@{Remove\-Edge}}
\index{Remove\-Edge@{Remove\-Edge}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Remove\-Edge}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ void {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Remove\-Edge (
\begin{DoxyParamCaption}
\item[{int}]{from, }
\item[{int}]{to}
\end{DoxyParamCaption}
)}}\label{class_odin_a_i_1_1_sparse_graph_ac8d2ec194ac79f13465091bacb114cbe}
Remove edge from graph. \hypertarget{class_odin_a_i_1_1_sparse_graph_aa9e253bffd0796a2ea92e808e021939b}{\index{Odin\-A\-I\-::\-Sparse\-Graph@{Odin\-A\-I\-::\-Sparse\-Graph}!Remove\-Node@{Remove\-Node}}
\index{Remove\-Node@{Remove\-Node}!OdinAI::SparseGraph@{Odin\-A\-I\-::\-Sparse\-Graph}}
\subsubsection[{Remove\-Node}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class N\-O\-D\-E\-\_\-\-T\-Y\-P\-E , class E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$ void {\bf Odin\-A\-I\-::\-Sparse\-Graph}$<$ N\-O\-D\-E\-\_\-\-T\-Y\-P\-E, E\-D\-G\-E\-\_\-\-T\-Y\-P\-E $>$\-::Remove\-Node (
\begin{DoxyParamCaption}
\item[{int}]{node}
\end{DoxyParamCaption}
)}}\label{class_odin_a_i_1_1_sparse_graph_aa9e253bffd0796a2ea92e808e021939b}
Remove node from graph. 

The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
E\-:/\-Development/\-Projects/\-Odin\-A\-I/\-Include/\-Odin\-A\-I/Sparse\-Graph.\-h\end{DoxyCompactItemize}
