?? struct.h
字號:
int s; //全局變量,s=「m/2 ,B-樹除頭結(jié)點(diǎn)外的所有非終端結(jié)點(diǎn)所至少有的子樹數(shù)目
#define FALSE 0
#define TRUE 1
#define ERROR 0
#define OK 1
#define A 5 //新書每次增加的本數(shù)
typedef int Status; //自定義函數(shù)類型
typedef struct Lender{ //借書者信息結(jié)點(diǎn)類型
char card[20]; //書證號
char time[15]; //應(yīng)還書時間
Lender *next; //指向下一個借書者
}Lender;
typedef struct Record{ //一本書的記錄的結(jié)點(diǎn)類型
int num; //入庫書號
char bookname[30]; //書名
char name[30]; //著者名
int now; //書的現(xiàn)存量
int total; //書的總庫存量
Lender *next; //指向第一個借此書者
}Record;
#define m 3 //B-樹的階數(shù)
typedef struct BTNode{ //B樹結(jié)點(diǎn)類型
int keynum; //關(guān)鍵字?jǐn)?shù)
struct BTNode *parent; //結(jié)點(diǎn)雙親指針
int key[m+1]; //關(guān)鍵字?jǐn)?shù)組
struct BTNode *ptr[m+1]; //子樹指針數(shù)組
Record *recptr[m+1]; //記錄指針數(shù)組
}BTNode,*BTree;
BTree T=NULL;
typedef struct{
BTNode *pt; //指向找到的結(jié)點(diǎn)
int i; //1...m,在結(jié)點(diǎn)中的關(guān)鍵字序號
int tag; //1:查找成功,0:查找失敗
}Result; //B-樹查找結(jié)果返回類型
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);/*遞歸調(diào)用輸出子樹關(guān)鍵字*/
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -