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

📄 createbtree.h

📁 数据结构课程设计 数据结构B+树 B+ tree Library
💻 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 + -