⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hashtable.h

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 H
字号:
#ifndef HASHTABLE_H
#define HASHTABLE_H

#include "stdafx.h"

struct BUCKET;

struct LIST
{
	LIST*		pNext;
	LIST*		pPrv;
	BUCKET*		pBucket;
	LIST()		{pNext = NULL; pPrv = NULL; pBucket = NULL;}
};

struct BUCKET
{
	DWORD		dwKey;
	void*		pVoid;
	LIST*		pList;
	BUCKET*		pNext;
	BUCKET*		pPrv;
	BUCKET(void* pvoid,DWORD key)	{pVoid = pvoid;dwKey = key; pNext = NULL; pPrv = NULL;}

};

class CHashTable
{
protected:
	DWORD				m_dwDataNum;
	DWORD				m_dwMaxBucketNum;
	BUCKET**			m_ppBucketTable;
	LIST*				m_pListHead;
	LIST*				m_pListTail;
	LIST*				m_pListCur;

	DWORD	inline		GetDataNum() {return m_dwDataNum;}
	bool				Initialize(DWORD dwMaxBucketNum);
	LIST*				AddList(BUCKET* pBucket);
	void				RemoveList(LIST* pList);
	void				Init();
	bool				Add(void* pVoid,DWORD dwKey);
	void*				GetData(DWORD dwKey);
	void*		 		GetData();
	void	inline 		SetPositionHead() {m_pListCur = m_pListHead;}
	void				Remove(DWORD dwKey);
	void				RemoveAll();
public:
	~CHashTable();
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -