完整的C/C++时序的B+树数据库系统实现实验,用于做数据索引
完整的C/C++时序的B+树(数据库系统实现实验,用于做数据索引)
工程是VS2015中开发,使用VS可以打开。菜单化,自动生成模拟数据等等。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-01-01 10:38 BTree
目录 0 2016-01-01 10:38 BTree.vs
目录 0 2016-01-01 10:38 BTree.vsBTree
目录 0 2016-01-01 10:38 BTree.vsBTreev14
文件 47104 2015-12-28 19:53 BTree.vsBTreev14.suo
目录 0 2016-01-01 10:38 BTreeBTree
文件 12910592 2015-12-28 19:53 BTreeBTree.sdf
文件 1297 2015-12-10 23:38 BTreeBTree.sln
文件 34790 2015-12-28 19:53 BTreeBTreeBTree.h
文件 7497 2015-12-23 20:05 BTreeBTreeBTree.vcxproj
文件 1399 2015-12-23 20:05 BTreeBTreeBTree.vcxproj.filters
文件 2176 2015-12-24 18:49 BTreeBTreeBTreeIndex.h
文件 2289 2015-12-24 18:44 BTreeBTreeDatabase.h
目录 0 2016-01-01 10:38 BTreeBTreeDebug
文件 728 2015-12-28 10:52 BTreeBTreeDebugBTree.Build.CppClean.log
文件 4015 2015-12-28 10:52 BTreeBTreeDebugBTree.log
文件 20622 2015-12-28 10:52 BTreeBTreeDebugBTree.obj
目录 0 2016-01-01 10:38 BTreeBTreeDebugBTree.tlog
文件 159 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogBTree.lastbuildstate
文件 1186 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogCL.command.1.tlog
文件 22318 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogCL.read.1.tlog
文件 924 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogCL.write.1.tlog
文件 1176 2015-12-28 10:52 BTreeBTreeDebugBTree.tloglink.command.1.tlog
文件 3000 2015-12-28 10:52 BTreeBTreeDebugBTree.tloglink.read.1.tlog
文件 454 2015-12-28 10:52 BTreeBTreeDebugBTree.tloglink.write.1.tlog
文件 566060 2015-12-28 10:52 BTreeBTreeDebugmain.obj
文件 470016 2015-12-28 10:52 BTreeBTreeDebugvc140.idb
文件 495616 2015-12-28 10:52 BTreeBTreeDebugvc140.pdb
文件 4850 2015-12-24 18:53 BTreeBTreemain.cpp
文件 1496 2015-11-24 22:27 BTreeBTreeReadMe.txt
文件 285 2015-12-23 21:25 BTreeBTreeRecord.h
............此处省略4个文件信息
#include
#include
#include “BTreeIndex.h“
#include “Record.h“
void printMenu();
//function declares
//可以忽略了,这些都是测试用的。请直接运行程序就好。
void t_empty();
void t_1_to_10();
void t_btree4();
void t_del();
int main()
{
//t_empty();
//t_add();
//t_1_to_10();
//t_btree4();
//t_del();
Database db(“dbFile“);
//定义一个BTree索引数据表。
BTreeIndex indexDB(3);
//数据记录,用于存放输入的临时数据。
Record record;
//用于存放输入的临时数据。
int key;
//打印命令。
printMenu();
//命令号
int cmd = -1;
//接受命令。
while (cin >> cmd) {
switch (cmd)
{
//1:新增数据 格式(key value)
case 1:
cout << “please input key and value:“;
cin >> record.key >> record.content;
indexDB.add(record.key record);
break;
//2:删除数据 格式(key)
case 2:
cout << “please input key:“;
cin >> key;
indexDB.del(key);
break;
//3:查询数据 格式(key)
case 3:
cout << “please input key:“;
cin >> key;
record.key = -1;
indexDB.find(key record);
if (record.key != -1) {
cout << “Record[key=“ << record.key << “content=“ << record.content << “]“ << endl;
}
else {
cout << “Record with key=“ << key << “ is not found!“ << endl;
}
break;
//4:打印B树索引“ << endl;
case 4:
indexDB.getBTree()->print();
break;
case 5:
indexDB.getBTree()->printAllLeaf();
break;
default:
cout << “invalid cmmand!“ << endl;
break;
}
printMenu();
}
return 0;
}
//打印功能菜单
void printMenu() {
cout << endl;
cout << “1:新增数据 格式(key value);“ << endl;
cout << “2:删除数据 格式(key);“ << endl;
cout << “3:查询数据 格式(key);“ << endl;
cout << “4:打印B树索引“ << endl;
cout << “5:打印叶子结点“ << endl;
}
void t_del() {
BTree btree(3);
for (int i = 1; i <= 3; i++) {
btree.add(10 * i 10 * i);
btree.printAllLeaf();
}
btree.add(25 25);
btree.printAllLeaf();
btree.add(45 45);
btree.printAllLeaf();
btree.add(61 61);
btree.printAllLeaf();
btree.add(63 63);
btree.printAllLeaf();
btree.add(65 65);
btree.printAllLeaf();
btree.add(64 64);
btree.printAllLeaf();
btree.add(62 62);
btree.printAllLeaf();
btree.add(82 82);
btree.printAllLeaf();
btree.add(84 84);
btree.printAllLeaf();
btree.add(86 86);
btree.printAllLeaf();
btree.add(88 88);
btree.printAllLeaf();
btree.add(85 85);
cout << “删除65之前-------------------------------------“ << endl;
btree.print();
btree.printAllLeaf();
cout << “删除65之后-------------------------------------“ << endl;
btree.del(65);
btree.print();
btree.printAllLeaf();
//合并左结点
//btree.del(100);
//btree.print();
//btree.printAllLeaf();
//合并右结点
btree.del(85);
btree.print();
btree.printAllLeaf();
btree.del(80);
btree.print();
btree.printAllLeaf();
//构造导致父结点也合并的情况
//内部结点合并并且通过借结点实现(向左借)
btree.del(61);
btree.print();
btree.printAllLeaf();
//内部结点合并并且通过借结点实现(向右借)
btree.del(50);
btree.print();
btree.printAllLeaf();
btree.del(6
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-01-01 10:38 BTree
目录 0 2016-01-01 10:38 BTree.vs
目录 0 2016-01-01 10:38 BTree.vsBTree
目录 0 2016-01-01 10:38 BTree.vsBTreev14
文件 47104 2015-12-28 19:53 BTree.vsBTreev14.suo
目录 0 2016-01-01 10:38 BTreeBTree
文件 12910592 2015-12-28 19:53 BTreeBTree.sdf
文件 1297 2015-12-10 23:38 BTreeBTree.sln
文件 34790 2015-12-28 19:53 BTreeBTreeBTree.h
文件 7497 2015-12-23 20:05 BTreeBTreeBTree.vcxproj
文件 1399 2015-12-23 20:05 BTreeBTreeBTree.vcxproj.filters
文件 2176 2015-12-24 18:49 BTreeBTreeBTreeIndex.h
文件 2289 2015-12-24 18:44 BTreeBTreeDataba
目录 0 2016-01-01 10:38 BTreeBTreeDebug
文件 728 2015-12-28 10:52 BTreeBTreeDebugBTree.Build.CppClean.log
文件 4015 2015-12-28 10:52 BTreeBTreeDebugBTree.log
文件 20622 2015-12-28 10:52 BTreeBTreeDebugBTree.obj
目录 0 2016-01-01 10:38 BTreeBTreeDebugBTree.tlog
文件 159 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogBTree.lastbuildstate
文件 1186 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogCL.command.1.tlog
文件 22318 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogCL.read.1.tlog
文件 924 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogCL.write.1.tlog
文件 1176 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogli
文件 3000 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogli
文件 454 2015-12-28 10:52 BTreeBTreeDebugBTree.tlogli
文件 566060 2015-12-28 10:52 BTreeBTreeDebugmain.obj
文件 470016 2015-12-28 10:52 BTreeBTreeDebugvc140.idb
文件 495616 2015-12-28 10:52 BTreeBTreeDebugvc140.pdb
文件 4850 2015-12-24 18:53 BTreeBTreemain.cpp
文件 1496 2015-11-24 22:27 BTreeBTreeReadMe.txt
文件 285 2015-12-23 21:25 BTreeBTreeRecord.h
............此处省略4个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)