• 大小: 230KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: Java
  • 标签: B+树,Java  

资源简介

步骤为数据库文件创建一个B+树索引: (1)生成数据文件, (2)为数据库文件的属性创建B+ 树文件。 (3)给定键值,通过B+树进行查找。同时比较与直接扫描表的性能差别。(利用B+树时可根据内存大小决定放置多少层次到内存) (4)给定键值,完成数据插入,并按需更新B+树。 (5)给定键值,完成数据删除,并按需更新B+树 资源包括:Java源码及实验报告!

资源截图

代码片段和文件信息

package com.csz.btree;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class BPTree implements Tree {

private static int size = 100000;//总记录数100000
private static int sizePerBlock = 40;//由于磁盘上每个block大小是4KB每条记录大小100B所以每个block上记录条数为40
private static int blockSize = (size%sizePerBlock)==0?(size/sizePerBlock):(size/sizePerBlock)+1; //总的块数
private static String fileDirectory = “F:\\Records\\“;
private static String recordFile = fileDirectory+“record.txt“;

/** 根节点 */
protected Node root;

/** 阶数,M值 */
protected int order;

/** 叶子节点的链表头*/
protected Node head;

public Node getHead() {
return head;
}

public void setHead(Node head) {
this.head = head;
}

public Node getRoot() {
return root;
}

public void setRoot(Node root) {
this.root = root;
}

public int getOrder() {
return order;
}

public void setOrder(int order) {
this.order = order;
}

@Override
public object get(Comparable key) {
return root.get(key);
}

@Override
public boolean remove(Comparable key) {
return root.remove(key this);

}

@Override
public void insertOrUpdate(Comparable key object obj) {
root.insertOrUpdate(key obj this);

}

public BPTree(int order){
if (order < 3) {
System.out.print(“order must be greater than 2“);
System.exit(0);
}
this.order = order;
root = new Node(true true);
head = root;
}

public void creatRecords() throws Exception{

File file = new File(recordFile);
BufferedWriter out = new BufferedWriter(new FileWriter(file));
System.out.println(“Creating records...“);
for(int j = 0;j for(int i =0;i if(!(i == 0 && j == 0)){
out.newLine();
}
out.write(new Record().getRecordString());
}
}
out.close();
}
public static void readRecords(BPTree btree) throws Exception{
BufferedReader in = new BufferedReader( new FileReader(recordFile));
String line;
System.out.println(“Building B+ Tree...“);
for(int j = 0;j for(int i =0;i line = in.readLine();
Record r = new Record(line);
int key = r.getA();
btree.insertOrUpdate(key key);
}
}
in.close();
}

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     219490  2016-01-12 13:37  Java实现B+Tree.docx

     文件        301  2015-12-31 08:23  B+Tree-Java源码\.classpath

     文件        382  2015-12-31 08:24  B+Tree-Java源码\.project

     文件        629  2014-12-18 19:39  B+Tree-Java源码\.settings\org.eclipse.jdt.core.prefs

     文件       4152  2015-12-24 18:40  B+Tree-Java源码\bin\com\csz\btree\BPTree.class

     文件      11557  2015-12-24 18:40  B+Tree-Java源码\bin\com\csz\btree\Node.class

     文件       1642  2015-12-24 18:40  B+Tree-Java源码\bin\com\csz\btree\Record.class

     文件       2466  2015-12-24 18:40  B+Tree-Java源码\bin\com\csz\btree\TestMain.class

     文件        496  2015-12-24 18:40  B+Tree-Java源码\bin\com\csz\btree\Tree.class

     文件       2456  2015-12-31 08:21  B+Tree-Java源码\src\com\csz\btree\BPTree.java

     文件      17613  2015-12-31 08:22  B+Tree-Java源码\src\com\csz\btree\Node.java

     文件        802  2015-12-31 08:22  B+Tree-Java源码\src\com\csz\btree\Record.java

     文件       1803  2015-12-31 08:22  B+Tree-Java源码\src\com\csz\btree\TestMain.java

     文件        279  2015-12-31 08:22  B+Tree-Java源码\src\com\csz\btree\Tree.java

     目录          0  2016-01-12 13:40  B+Tree-Java源码\bin\com\csz\btree

     目录          0  2016-01-12 13:40  B+Tree-Java源码\src\com\csz\btree

     目录          0  2016-01-12 13:40  B+Tree-Java源码\bin\com\csz

     目录          0  2016-01-12 13:40  B+Tree-Java源码\src\com\csz

     目录          0  2016-01-12 13:40  B+Tree-Java源码\bin\com

     目录          0  2016-01-12 13:40  B+Tree-Java源码\src\com

     目录          0  2016-01-12 13:40  B+Tree-Java源码\.settings

     目录          0  2016-01-12 13:40  B+Tree-Java源码\bin

     目录          0  2016-01-12 13:40  B+Tree-Java源码\src

     目录          0  2016-01-12 13:40  B+Tree-Java源码

----------- ---------  ---------- -----  ----

               264068                    24


评论

共有 条评论

相关资源