-
大小: 10KB文件類型: .rar金幣: 1下載: 0 次發(fā)布日期: 2021-01-03
- 語言: 其他
- 標(biāo)簽:
資源簡介
B-樹實(shí)現(xiàn)目錄索引,圖書管理基本業(yè)務(wù)活動(dòng)包括:對一本書的采編入庫、清除庫存、借閱和歸還等等。由于上述四項(xiàng)基本業(yè)務(wù)活動(dòng)都是通過書號(即關(guān)鍵字)進(jìn)行的,所以要用B樹(2-3樹)對書號建立索引,以獲的高效率。故重點(diǎn)是要完成B樹的建立、查找、插入、刪除等基本操作。
既為圖書管理,就需要一個(gè)模塊來完成對借閱者的注冊、登記和記錄借閱情況,本程序使用文件來完成上述操作。
演示程序是以用戶于計(jì)算機(jī)的對話方式執(zhí)行,這需要一個(gè)模塊來完成使用者與計(jì)算機(jī)語言是轉(zhuǎn)化。
程序執(zhí)行時(shí)的命令:
本程序?yàn)榱耸褂脮r(shí)的方便,采用菜單式的方式來完成程序的演示,幾乎不用輸入什么特殊的命令,只需按提示輸入選者即可
代碼片段和文件信息
#include?“btree.h“
//復(fù)制結(jié)點(diǎn)將某個(gè)結(jié)點(diǎn)的值復(fù)制到另外一個(gè)值上
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;
}
//在一個(gè)結(jié)點(diǎn)中查找元素返回結(jié)點(diǎn)的位置
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上查找關(guān)鍵字K,返回結(jié)果(ptitag)
Result?SearchBTree(BTree?T?KeyType?K){?
???BTree?p?q;
???int?found?i;
???Result?R;
???//初始化變量
???p?=?T;?
???q?=?NULL;?
???found?=?FALSE;?
???i?=?0;?
???//?初始化,p指向待查結(jié)點(diǎn),q指向p的雙親
???while?(p?&&?!found)?{
??????i?=?Search(p?K);?
??????//?找到待查關(guān)鍵字??????????????????
??????if?(i?>?0?&&?p->key[i].key?==?K.key)?
??found?=?TRUE;????
????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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
評論
共有 條評論