www.pudn.com > GOS.rar > KList.h
// KList.h: interface for the KList class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_KLIST_H__43112B7C_8C16_4D69_90EB_D97D7EFA7956__INCLUDED_) #define AFX_KLIST_H__43112B7C_8C16_4D69_90EB_D97D7EFA7956__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 templateclass KList { private: int m_nCount; int m_nBlockSize; LPVOID m_pBase; POSITION m_pHead; POSITION m_pTail; public: KList(int nBlockSize) { m_nBlockSize=nBlockSize>0?nBlockSize:16; m_nCount=0; m_pBase=HeapAlloc(sizeof(LPVOID)*2+sizeof(TYPE)*m_nBlockSize); }; virtual ~KList() { RemoveAll(); }; public://Head/Tail Access TYPE& GetHead() { return NULL; }; TYPE& GetTail() { return NULL; }; public://Operations TYPE RemoveHead() { return NULL; } void RemoveTail() { } POSITION AddHead(TYPE newElement) { return NULL; } POSITION AddTail() { return NULL; } void RemoveAll() { LPVOID pBlock=m_pBase+(m_pTail>>8); while(pBlock) { HeapFree(pBlock); pBlock=m_pBase+((*m_pTail)>>8); } } public://Iteration POSITION GetHeadPosition() { return NULL; } POSITION GetTailPosition() { return NULL; } TYPE& GetNext(POSITION& pos) { return NULL; } TYPE& GetPrev(POSITION& pos) { return NULL; } public://Retrieval/Modification TYPE& GetAt(POSITION pos) { return NULL; } void SetAt(POSITION pos,TYPE newElement) { } POSITION InsertBefore(POSITION pos,TYPE newElement) { return NULL; } POSITION InsertAfter(POSITION pos,TYPE newElement) { return NULL; } public://Find POSITION Find(TYPE searchValue, POSITION startAfter) const { return NULL; } POSITION FindIndex( int nIndex ) const { return NULL; } public://Other int GetCount(){return 0;}; BOOL IsEmpty(){return FALSE;}; }; #endif // !defined(AFX_KLIST_H__43112B7C_8C16_4D69_90EB_D97D7EFA7956__INCLUDED_)