www.pudn.com > He4Hook215b6.rar > KBinaryTree.h
#ifndef __KBINARY_TREE_H
#define __KBINARY_TREE_H
#ifndef __TEST_WIN32
extern "C"
{
#include "ntddk.h"
}
#include "../Include/KNew.h"
#include "../Include/KTypes.h"
#else
#include
#endif //__TEST_WIN32
#include "../KSpinSynchroObject/KSpinSynchroObject.h"
//#include "../KNativeSynchroObject/KNativeSynchroObject.h"
#include "KBinaryTreeNode.h"
class KBinaryTree;
//*******************************************************************//
class KBinaryTree
{
public:
explicit
KBinaryTree(BTREE_COMPARE pCompare = NULL);
virtual ~KBinaryTree();
BOOLEAN IsEmpty();
LONG GetDepth();
KBinaryTreeNode* Insert(VOID* data, ULONG dwCompareParam);
BOOLEAN Delete(VOID* data, ULONG dwCompareParam);
KBinaryTreeNode* Search(VOID* data, ULONG dwCompareParam);
VOID* SearchData(VOID* data, ULONG dwCompareParam);
KBinaryTreeNode* GetRoot();
VOID* GetRootData();
LONG NodesInTree();
BOOLEAN DeleteAll();
protected:
private:
KBinaryTree(const KBinaryTree&);
KBinaryTree& operator=(const KBinaryTree& right);
protected:
KBinaryTreeNode* m_pRootTree;
BTREE_COMPARE m_pCompare;
KSpinSynchroObject m_KSynchroObject;
//KNativeSynchroObject m_KSynchroObject;
};
#endif //__KBINARY_TREE_H