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

📄 indextree.h

📁 可以进行膜板定制的动态网页下载分析的源程序
💻 H
字号:
#ifndef __INDEXTREE__
#define __INDEXTREE__
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <io.h>
#include <fcntl.h>

#define CASENUMBER    ('a' - 'A') //0x20
#define fUpperCase(x) (char)((x)>='a'&&(x)<='z' ? (x)-CASENUMBER:(x))

#define  INDEXTREESUCCESS				0
#define  INDEXTREEFALSE					1
#define  HAVENOROOM						-1
#define	 MAXPATHLEN						150

typedef struct _Cache_Nod_
{	
	char *search_string;		//存放单词
	long count;					//存放编码
	_Cache_Nod_ *next;
	_Cache_Nod_ *prev;
	_Cache_Nod_ *indexnext;		//存放数量
}CacheNod_Str;

class IndexTree 
{
public:	

public:
	IndexTree();
	IndexTree(int classnum,unsigned long dataMax,int eachNum);
	~IndexTree();	

	long ClearTree();
	CacheNod_Str * Find_A_dataNode(char * search_string,int &flag);	
	//可以随时变动
	CacheNod_Str * Get_A_dataNode(char *search_string,long count,long lINew=0);
	CacheNod_Str * Get_A_indexNode(char *search_string ,long indexcount);
	CacheNod_Str * Get_First_DataNode();
	//
	int UpdateNode(CacheNod_Str *newNod,CacheNod_Str *oldNod);	
	int AddNode(CacheNod_Str *newNod);
	CacheNod_Str *AddWords(char *search_string,long page,long lINew=0);	
	CacheNod_Str *DeleteNode(char *search_string,int flag);
	int Delete_A_Nod(CacheNod_Str* pNod);
	/*保存树*/
	long SaveTree(char *pTreeFile);
	/*载入树*/
	long LoadTree(char *pTreeFile);
	
private:		
	CacheNod_Str * Find_A_dataNode(char * search_string,int &flag,CacheNod_Str **strarray);
	long m_eachNum;
	char **ppPrepBuf;				//申请的内存缓存区
	CacheNod_Str **sppCacheNod;		//申请的节点的缓存区
	CacheNod_Str *cpIdleListHead;
	long lOneMallocNodeNum;			//一次可以申请的节点的个数
	long lOneMallocBufLen;			//一次申请内存大小
	long lMaxMallocNum;				//最多可以申请的内存的次数
	long lNowAssignBufPos;			//当前分配到的内存的相对偏移
	long lNowAssignNodPos;			//当前分配到的节点的相对偏移
	long lNowAssignBufNum;
	long lNowAssignNodNum;
public:
	CacheNod_Str *m_head;
	int m_classnum;//索引级数,第N-1为数据,第n级为时间n>2;
	unsigned long m_datalength;//数据个数
	unsigned long m_dataMax;	//最多可存放数据个数
	int (*pFun)(void *,void *);

};
int StringCmp(const char * str1,const char * str2);	
#endif

⌨️ 快捷键说明

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