Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

AGenericTree.h

Go to the documentation of this file.
00001 #ifndef MMANN_AGENERICTREE_H
00002 #define MMANN_AGENERICTREE_H
00003 
00011 
00012 #include "CompareAlgorithms.h"
00013 
00015 enum DeleteTreeDataEnum {NO_DELETE_TREE_ITEM, DELETE_TREE_ITEM, DELETE_TREE_ITEM_ARRAY};
00016 
00018 template <class Data, class ConfigData>
00019 class AGenericTree
00020 {
00021 public:
00022 
00024     virtual ~AGenericTree();
00025 
00031     virtual Data* Search(Data* NodeData, bool* NodeInserted) = 0;
00032 
00037     virtual Data* Find(Data* NodeData) = 0;
00038 
00041     virtual void DeleteTree() {}
00042 
00043 protected:
00045     AGenericTree(ACompareNodesAlgorithm<Data, ConfigData>* CompareNodes, DeleteTreeDataEnum DeleteTreeData = NO_DELETE_TREE_ITEM,
00046              ConfigData* pConfigData = NULL);
00047 
00049     ACompareNodesAlgorithm<Data, ConfigData>* m_CompareNodes;
00050 
00052     ConfigData* m_ConfigData;
00053 
00055     DeleteTreeDataEnum m_DeleteTreeData;
00056 };
00057 
00058 template <class Data, class ConfigData>
00059 AGenericTree<Data, ConfigData>::AGenericTree(ACompareNodesAlgorithm<Data, ConfigData>* CompareNodes,
00060                      DeleteTreeDataEnum DeleteTreeData, ConfigData* pConfigData)
00061 {
00062     m_CompareNodes = CompareNodes;
00063     m_ConfigData = pConfigData;
00064     m_DeleteTreeData = DeleteTreeData;
00065 }
00066 
00067 
00068 template <class Data, class ConfigData>
00069 AGenericTree<Data, ConfigData>::~AGenericTree()
00070 {
00071 }
00072 
00073 
00074 #endif

Generated on Sat Nov 5 11:20:15 2005 for Cpp Freecell Solver by  doxygen 1.4.4