📄 createbtree.h
字号:
#include "BTree.h"
#include "iostream.h"
#include "string.h"
BTNode *CreateBTree()
{
BTNode *root=new BTNode();//根节点
BTNode *child;//在当前节点位置插入
root->parent=NULL;
int find;//是否找到
int position;//位置
char category;//分类
int number=1;//编号
FILE *fp; //文件操作
fp=fopen("category.txt","r"); //打开文件
fscanf(fp,"%s",&category); //读取第一个分类
root->key[0]=category;//保存第一个分类
root->keynum++;//关键字数增一
LHList<Book *> *bookList1=new LHList<Book *>();
do
{
Book *book=new Book;
fscanf(fp,"%d %s",&number,&(book->name));
book->number=number;
bookList1->appendNode(book);
} while(number!=0);//读取该分类中的所有图书信息并保存在链表中
root->books[0]=bookList1;//保存图书链表的头指针
while(!feof(fp))//继续读取下一个分类的信息
{
find=FALSE;
position=0;
fscanf(fp,"%s",&category);
child=Search(root,category,position,find);//找到该关键字应该插入的位置
if(!find)//B+树中不存在该关键字
insertBTNode(child,category,position); //当前节点上面插入
LHList<Book *> *bookList=new LHList<Book *>();
do
{
Book *book=new Book;
fscanf(fp,"%d %s",&number,&(book->name));
book->number=number;
bookList->appendNode(book);
} while(number!=0);//读取该分类中的所有图书信息并保存在链表中
child->books[position]=bookList;//*/ 保存图书链表的头指针
if(child->keynum>m)//如果B+树不平衡
setBalance(child);//调平衡
}
return root;//返回根节点
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -