Пример #1
0
void main()
{
	BTNode *t=NULL;
	Result s;
	int j,n=10;
	KeyType a[]={4,9,0,1,8,6,3,5,2,7},k;
	m=3;								//3阶B-树
	Max=m-1;Min=(m-1)/2;
	printf("创建一棵%d阶B-树:\n",m);
	for (j=0;j<n;j++)					//创建一棵3阶B-树t	
	{
		s=SearchBTree(t,a[j]);
		if (s.tag==0)
			InsertBTree(t,a[j],s.pt,s.i);	
		printf("   第%d步,插入%d: ",j+1,a[j]);DispBTree(t);printf("\n");
	}
	printf("  结果B-树: ");DispBTree(t);printf("\n");
	printf("删除操作:\n");
	k=8;
	DeleteBTree(k,t);
	printf("  删除%d: ",k);
	printf("B-树: ");DispBTree(t);printf("\n");
	k=1;
	DeleteBTree(k,t);
	printf("  删除%d: ",k);
	printf("B-树: ");DispBTree(t);printf("\n");
}
Пример #2
0
void main()
{
	BTNode *t=NULL;
	Result s;
	int j,n=20;
	KeyType a[]={1,2,6,7,11,4,8,13,10,5,17,9,16,20,3,12,14,18,19,15},k;
	m=5;								/*例10.7*/
	Max=m-1;Min=(m-1)/2;
	printf("\n");
	printf(" 创建一棵%d阶B-树:\n",m);
	for (j=0;j<n;j++)					/*创建一棵5阶B-树t*/	
	{
		s=SearchBTree(t,a[j]);
		if (s.tag==0)
			InsertBTree(t,a[j],s.pt,s.i);	
		printf("   第%d步,插入%d: ",j+1,a[j]);DispBTree(t);printf("\n");
	}
	printf(" 删除操作:\n");				/*例10.8*/
	k=8;
	DeleteBTree(k,t);
	printf("   删除%d: ",k);
	DispBTree(t);printf("\n");
	k=16;
	DeleteBTree(k,t);
	printf("   删除%d: ",k);
	DispBTree(t);printf("\n");
	k=15;
	DeleteBTree(k,t);
	printf("   删除%d: ",k);
	DispBTree(t);printf("\n");
	k=4;
	DeleteBTree(k,t);
	printf("   删除%d: ",k);
	DispBTree(t);printf("\n\n");
}
int main()
{
    int r[N]= {22,16,41,58,8,11,12,16,17,22,23,31,41,52,58,59,61};
    BTree T=NULL;
    Result s;
    int i;
    for(i=0; i<N; i++)
    {
        s=SearchBTree(T,r[i]);
        if(!s.tag)
            InsertBTree(&T,r[i],s.pt,s.i);
    }
    printf("\n请输入待查找记录的关键字: ");
    scanf("%d",&i);
    s=SearchBTree(T,i);
    if(s.tag)
        print(*(s.pt),s.i);
    else
        printf("没找到");
    printf("\n");

    return 0;
}