📄 struct.h
字号:
int s; //全局变量,s=「m/2 ,B-树除头结点外的所有非终端结点所至少有的子树数目
#define FALSE 0
#define TRUE 1
#define ERROR 0
#define OK 1
#define A 5 //新书每次增加的本数
typedef int Status; //自定义函数类型
typedef struct Lender{ //借书者信息结点类型
char card[20]; //书证号
char time[15]; //应还书时间
Lender *next; //指向下一个借书者
}Lender;
typedef struct Record{ //一本书的记录的结点类型
int num; //入库书号
char bookname[30]; //书名
char name[30]; //著者名
int now; //书的现存量
int total; //书的总库存量
Lender *next; //指向第一个借此书者
}Record;
#define m 3 //B-树的阶数
typedef struct BTNode{ //B树结点类型
int keynum; //关键字数
struct BTNode *parent; //结点双亲指针
int key[m+1]; //关键字数组
struct BTNode *ptr[m+1]; //子树指针数组
Record *recptr[m+1]; //记录指针数组
}BTNode,*BTree;
BTree T=NULL;
typedef struct{
BTNode *pt; //指向找到的结点
int i; //1...m,在结点中的关键字序号
int tag; //1:查找成功,0:查找失败
}Result; //B-树查找结果返回类型
void Print(BTree &T,int k)//以凹入表形式递归法打印B-树
{
BTree q;
q=T;
if(q)
{
cout<<setw(k)<<" ";
for(int j=1;j<=q->keynum;j++)
cout<<q->key[j]<<" ";
cout<<endl;
k+=3;
for(int l=0;l<=q->keynum;l++)
Print(q->ptr[l],k);/*递归调用输出子树关键字*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -