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

📄 indexmgr.h

📁 计算机英汉机器翻译系统中的英语词性标注方法实现
💻 H
字号:

// INDEXMGR.H - IndexMgr Class Header

#ifndef INDEXMGR_H
#define INDEXMGR_H

#include "filemgr.h"
#include "nodemgr.h"

// 总结:每块索引项的个数应为奇数
// 索引项个数和记录大小的关系:
// 索引记录大小 = 索引项个数*(关键字长度+4) + 16 参Nodemgr.cpp
//const idxRecSize = 1022; 
//const idxRecSize = 2832;// 每块64个索引项 索引文件大小7M
//const idxRecSize = 2788;// 每块63个索引项 索引文件大小4.3M
const idxRecSize = 526; // 每块17个索引项 索引文件大小5.1M
//const idxRecSize = 720; // 每块16个索引项 索引文件大小8.9M
//const idxRecSize = 368; // 每块8个索引项 索引文件大小10M

class IndexMgr : public FileMgr
{
private:
	int m_nIndexSize; 
	long m_lIndexSite0;
	long m_lIndexSite1;
	long m_lIndexSite2;
	long m_lIndexSite3;
	long m_lContentOfSite0;
	long m_lContentOfSite1;
	long m_lContentOfSite2;
	long m_lContentOfSite3;
	long m_laSearchRoute[32];
	int m_nHighSearchRoute;
	int m_nIsCreatedIdx;
	int m_nUnique;
	NodeMgr *m_pnmNode;

	virtual void read_data(void *block);
	virtual void write_data(void *block);

	virtual void create_file(void) { create_idx(); }

	long FindCore(void *pszKeyWord, long recno);
public:

    IndexMgr(const char *fname, int itsize, int unique);
    IndexMgr(const char *fname, int itsize, int unique, int file_des,
             int idxno, int create);
	~IndexMgr(void);
	void create_idx(void);

	int get_fd(void) { return m_nFileHandle; }
    void set_fd(int file_des) { m_nFileHandle = file_des; m_nHighSearchRoute = -1; rew(); }
	long find(void *pszKeyWord);
	long retrieve(void);
    long next(int no_recs);
	long prev(int no_recs);
	void rew(void);
	int compare(void *pszKeyWord);
	int insert(long recno, void *pszKeyWord);
	int erase(void);
	void node_split(void);
	int created_idx(void) { return m_nIsCreatedIdx; }
	//void read_head_info(void);
	//int check_node_del(void); 
	//int check_split_del(void); 
	//void inc_node_del(void);
	//void inc_node_split(void);
	//long relocate(void);
	void ffwd_core(long recno);
	void ffwd(void);

	NodeMgr *GetNode() { return m_pnmNode; }
};

#endif

⌨️ 快捷键说明

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