CLinkedList.h
CLinkedList.cppCode:#include <windows.h> #ifndef CLINKEDLIST_CLASS #define CLINKEDLIST_CLASS struct LINK { LINK* Prev; LINK* Next; LPVOID pObject; BOOL IsMasterLink; }; class CLinkedList { public: LINK* MasterLink; CLinkedList(); ~CLinkedList(); BOOL Insert(LINK*); BOOL Create(LPVOID); BOOL Remove(LINK*); BOOL Delete(LINK*); }; #endif
83 lines including whitespace which cboard stripped out on pasteCode:#include <windows.h> #include "CLinkedList.h" #define MAKE_LINK (LINK*)HeapAlloc(GetProcessHeap() , 0 , sizeof(LINK) CLinkedList::CLinkedList(){ this->MasterLink = MAKE_LINK; this->MasterLink->IsMasterLink = TRUE; this->MasterLink->Next = this->MasterLink; this->MasterLink->Prev = this->MasterLink; this->MasterLink->pObject = NULL; } CLinkedList::~CLinkedList(){ LINK* pTemp; LINK* pNext; pTemp = this->MasterLink->Next; while(!pTemp->IsMasterLink){ pNext = pTemp->Next; this->Delete(pTemp); pTemp = pNext; } this->Delete(this->MasterLink); } BOOL CLinkedList::Create(LPVOID pTarget){ LINK* pTemp; pTemp = MAKE_LINK; pTemp->IsMasterLink = FALSE; pTemp->pObject = pTarget; return this->Insert(pTemp); } BOOL CLinkedList::Insert(LINK* pLink){ LINK* pNext = this->MasterLink->Next; LINK* pPrev = this->MasterLink; pNext->Prev = pLink; pPrev->Next = pLink; pLink->Next = pNext; pLink->Prev = pPrev; return TRUE; } BOOL CLinkedList::Delete(LINK* pLink){ HeapFree(GetProcessHeap() , 0 , pLink->pObject); return this->Remove(pLink); } BOOL CLinkedList::Remove(LINK* pLink){ pLink->Next->Prev = pLink->Prev; pLink->Prev->Next = pLink->Next; HeapFree(GetProcessHeap() , 0 , pLink); return TRUE; }



LinkBack URL
About LinkBacks




CornedBee