资源描述:
《数据结构算法——Visual C++ 6.0程序集 第9章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构算法VisualC++6.0程序集侯识忠等编著中国水利水电出版社第九章文件9、0散列文件的插入、删除和查找操作//散列文件的插入、删除和查找操作//HashFM.cpp#include#include#include#include//m为散列表的长度,确定取值为16constintm=16;//km为散列主文件中每个结点所含的元素个数,//取值大于等于1,暂取为3constintkm=3;//定义关键字类型
2、为整型typedefintKeyType;//索引主文件中的记录元素类型structElemType{intkey;//关键字域charrest[10];//其他域,暂用字符数组表示};//索引主文件中的结点类型structFLNode{ElemTypedata[km];//值域intnext;//指向下一个结点的指针域};//b1为索引表文件中的记录长度constintb1=sizeof(int);//b2为索引主文件中的记录长度constintb2=sizeof(FLNode);//NullTag作
3、为空关键字的标记,假定用-10表示constintNullTag=-10;//散列文件的类定义templateclassHFile{public://构造函数,初始化散列表文件和主文件HFile(char*fn1,char*fn2);//把元素x插入到按桶散列的文件中voidTHFInsertA(char*fn1,char*fn2,Tx);//把数组x中n个元素插入到按桶散列的文件中voidTHFInsertB(char*fn1,char*fn2,Tx[],intn);//从按桶散列的文
4、件中删除关键字为x.key的元素,//并由x带回该元素,若删除成功则返回1,否则返回0boolTHFDelete(char*fn1,char*fn2,T&x);//从按桶散列的文件中查找关键字为x.key的元素,//并由x带回该元素,若查找成功则返回1,否则返回0boolTHFSearch(char*fn1,char*fn2,T&x);//按单链表顺序打印出按桶散列主文件中每个结点的所有元素值voidTHFPrint(char*fn1,char*fn2);};//散列文件的类实现//初始化散列表文件和主
5、文件templateHFile::HFile(char*fn1,char*fn2){//以输出方式打开并建立空的散列表文件ofstreamf1(fn1,ios::out
6、ios::binary);if(!f1){cerr<7、ios::binary);if(!f2){cerr<8、);}//动态分配具有m+1个整型存储空间的数组Aint*A=newint[m+1];if(!A){cerr<<"申请堆内存失败!"<void
9、HFile::THFInsertA(char*fn1,char*fn2,Tx){//以输入输出和不新建方式打开散列表文件fstreamf1(fn1,ios::in
10、ios::out
11、ios::binary);if(!f1){cerr<12、ios::out
13、ios::binary);if(!f2){cerr<14、exit(1);}//给数组A中的每个元素赋初值-1,表示空指针int*A=newint[m+1];if(!A){cerr<<"申请堆内存失败!"<