nada
#define TamanhodaPagina 512
#define ItensPorPagina 64 /*TamanhodaPagina / TamanhodoItem */
typedef struct Registro { TipoChave Chave; /* outros componentes */
}Registro;
typedef struct EnderecoTipo { long p; char b;
}EnderecoTipo;
typedef struct ItemTipo { Registro Reg; EnderecoTipo Esq, Dir;
}ItenTipo;
typedef ItenTipo PaginaTipo[ItensPorPagina];
/* Programa F.2: Diferentes tipos de página para o sitema de paginação*/
typedef struct PaginaTipo{ char tipo; /* armazena o codigo do tipo: 0, 1, 2 */ union{ PaginaTipoA Pa; PaginaTipoB Pb; PaginaTipoC Pc; }P;
} PaginaTipo;
/* Programa F.3: Estrutura do dicionário para arvore B*/
typedef long TipoChave;
typedef struct Registro{ Tipo Chave; /*outros componentes*/
}Registro;
typedef struct Pagina* Apontador;
typedef struct Pagina { char n; Registro r[mm]; Apontador p[mm + 1];
}Pagina;
/*Programa F.4 Função para inicializar uma arvore B*/
void Inicializa (Apontador *Dicionario)
{
*Dicionario = NULL;
}
/*programa F.5: funcao para pesquisaar na arvore b*/ void Pesquisa(Registro *x, Apontador Ap)
{
long i =1; if (Ap == NULL) { printf("Registro nao esta presente na arvore/n"); return; } while ((i < (Ap -> n)) && ((x -> Chave) > (Ap -> r [i - 1].Chave))) i++; if (x -> Chave == Ap -> r [i - 1].Chave) { *x = Ap -> r[i - 1]; return; } if (x->Chave < Ap->r[i - 1].Chave) Pesquisa(x, Ap->p[i - 1]); else Pesquisa(x, Ap->p[i]);
}
/*F.6 Primeiro refinamento do algoritimo Insere na arvore B*/
void Ins(Registro Reg, Apontador Ap, short *Cresceu, Registro *RegRetorno, Apontador *ApRetorno)
{
long i =