資源簡介
B-樹實現目錄索引,圖書管理基本業務活動包括:對一本書的采編入庫、清除庫存、借閱和歸還等等。由于上述四項基本業務活動都是通過書號(即關鍵字)進行的,所以要用B樹(2-3樹)對書號建立索引,以獲的高效率。故重點是要完成B樹的建立、查找、插入、刪除等基本操作。
既為圖書管理,就需要一個模塊來完成對借閱者的注冊、登記和記錄借閱情況,本程序使用文件來完成上述操作。
演示程序是以用戶于計算機的對話方式執行,這需要一個模塊來完成使用者與計算機語言是轉化。
程序執行時的命令:
本程序為了使用時的方便,采用菜單式的方式來完成程序的演示,幾乎不用輸入什么特殊的命令,只需按提示輸入選者即可
代碼片段和文件信息
#include?“btree.h“
//復制結點將某個結點的值復制到另外一個值上
void?KeyTypeCopy(KeyType?&bakKeyType?k){
bak.key?=?k.key;
strcpy(bak.bnamek.bname);
bak.left?=?k.left;
bak.total?=?k.total;
strcpy(bak.writterk.writter);
bak.user?=?k.user;
}
//在一個結點中查找元素返回結點的位置
int?Search(BTree?p?KeyType?K)?{
if(!p)
return?-1;
int?i=0;
????for(i?=?0;?i?keynum?&&?p->key[i+1].key?<=?K.key;?i++);
????return?i;
}
//?在m階B樹T上查找關鍵字K,返回結果(ptitag)
Result?SearchBTree(BTree?T?KeyType?K){?
???BTree?p?q;
???int?found?i;
???Result?R;
???//初始化變量
???p?=?T;?
???q?=?NULL;?
???found?=?FALSE;?
???i?=?0;?
???//?初始化,p指向待查結點,q指向p的雙親
???while?(p?&&?!found)?{
??????i?=?Search(p?K);?
??????//?找到待查關鍵字??????????????????
??????if?(i?>?0?&&?p->key[i].key?==?K.key)?
??found?=?TRUE;????
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2808??2008-06-29?19:26??show.cpp
?????文件???????5146??2008-07-05?02:18??user.cpp
?????文件??????10192??2008-06-29?19:49??BTree.cpp
?????文件???????4337??2008-06-29?19:25??btree.h
?????文件???????1433??2008-07-04?12:37??LogMess.cpp
?????文件???????3691??2008-08-27?02:37??main.cpp
-----------?---------??----------?-----??----
????????????????27607????????????????????6
評論
共有 條評論