createbtree.h
来自「数据结构课程设计 数据结构B+树 B+ tree Library」· C头文件 代码 · 共 49 行
H
49 行
#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 + =
减小字号Ctrl + -
显示快捷键?