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

FCSStackStorage.h

Go to the documentation of this file.
00001 #ifndef MMANN_FCS_STACK_STORAGE
00002 #define MMANN_FCS_STACK_STORAGE
00003 
00011 
00012 #include "CompareAlgorithms.h"
00013 #include "HashAlgorithms.h"
00014 #include "AGenericTree.h"
00015 #include "FCInternalHash.h"
00016 #include "GLIBHash.h"
00017 
00018 class FCSIndirectCard;
00019 
00021 class AFCSGenericStackStorage
00022 {
00023 public:
00025     virtual ~AFCSGenericStackStorage();
00026 
00031     virtual FCSIndirectCard* Insert(FCSIndirectCard* Card) = 0;
00032 };
00033 
00035 class FCTreeStackStorage : public AFCSGenericStackStorage
00036 {
00037 public:
00039     FCTreeStackStorage();
00040 
00042     virtual ~FCTreeStackStorage();
00043 
00048     virtual FCSIndirectCard* Insert(FCSIndirectCard* card);
00049     
00050 protected:
00051 
00053     AGenericTree<FCSIndirectCard, void>* m_Tree;
00054 };
00055 
00057 class FCAVLTreeStackStorage : public FCTreeStackStorage
00058 {
00059 public:
00061     FCAVLTreeStackStorage(ACompareNodesAlgorithm<FCSIndirectCard, void>* Compare);
00062 
00064     virtual ~FCAVLTreeStackStorage();
00065 };
00066 
00068 class FCAVLRedBlackTreeStackStorage : public FCTreeStackStorage
00069 {
00070 public:
00072     FCAVLRedBlackTreeStackStorage(ACompareNodesAlgorithm<FCSIndirectCard, void>* Compare);
00073 
00075     virtual ~FCAVLRedBlackTreeStackStorage();
00076 };
00077 
00079 class FCRedBlackTreeStackStorage : public FCTreeStackStorage
00080 {
00081 public:
00083     FCRedBlackTreeStackStorage(ACompareNodesAlgorithm<FCSIndirectCard, void>* Compare);
00084 
00086     virtual ~FCRedBlackTreeStackStorage();
00087 };
00088 
00090 class FCGLIBTreeStackStorage : public FCTreeStackStorage
00091 {
00092 public:
00094     FCGLIBTreeStackStorage(ACompareNodesAlgorithm<FCSIndirectCard, void>* Compare);
00095 
00097     virtual ~FCGLIBTreeStackStorage();
00098 };
00099 
00101 class FCHashStackStorage : public AFCSGenericStackStorage
00102 {
00103 public:
00105     FCHashStackStorage();
00106 
00108     virtual ~FCHashStackStorage();
00109 
00114     virtual FCSIndirectCard* Insert(FCSIndirectCard* card);
00115 
00116 
00117 protected:
00119     AGenericHash<FCSIndirectCard, void>* m_Hash;
00120 };
00121 
00123 class FCGLIBHashStackStorage : public FCHashStackStorage
00124 {
00125 public:
00126 
00128     FCGLIBHashStackStorage(int SizeWanted, ACompareNodesAlgorithm<FCSIndirectCard, void>* Compare,
00129                             AHashAlgorithm<FCSIndirectCard>* Hash);
00130 
00132     virtual ~FCGLIBHashStackStorage();
00133 };
00134 
00136 class FCInternalHashStackStorage : public FCHashStackStorage
00137 {
00138 public:
00140     FCInternalHashStackStorage(int SizeWanted, ACompareNodesAlgorithm<FCSIndirectCard, void>* Compare, 
00141                             AHashAlgorithm<FCSIndirectCard>* Hash);
00142     
00144     virtual ~FCInternalHashStackStorage();
00145 };
00146 
00147 #endif

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