69,369
社区成员
发帖
与我相关
我的任务
分享
typedef struct BTNode // B树结点
{
int keynum; // 每个结点关键字个数
struct BTNode *parent; // 父亲指针
KeyType key[m+1]; // 关键字数组,0号单元未用
struct BTNode *ptr[m+1]; // 子数指针
Record *rec[m+1]; // 记录指针,0号单元未用
}BTNode,*BTree; // B树节点类型和B树类型
typedef BTree Library;
void InitLibrary(Library L)
// 初始化书库L为空书库。
{
L = NULL;
}
InitLibrary(L); // 初始化书库L
case 1: // 图书入库
while(in != 'M' && in != 'm')
{
B = (BookType)malloc(sizeof(BookNode));
B->reader = NULL; // 下一个借阅者指针置空
printf("\n\n\t请输入要入库的书号:");
scanf("%d",&B->booknum);
res = SearchBTree(L, B->booknum); // 查找入库书号
int i = 1;
BTree p = T, q = NULL; // 初始化,p指向待查结点,q指向p的双亲
int found = FALSE;
while(p && !found)
{
i = Search(p, k); // 查找k的位置使p->key[i]<=k<p->key[i+1]
if(i> 0 && k == p->key[i]) found = TRUE;
else{ // 未找到,则查找下一层
q = p;
p = p->ptr[i];
}
}