Escolar Documentos
Profissional Documentos
Cultura Documentos
A função `mallo
alocar a quantidade necessária de memória e retorna um ponteiro para o início da região alocada. É importante liberar a memória alocada usando a função `free`
mais necessária, para evitar vazamentos de memória.
Pilha (vetor + encadeada com descritores): ): é uma estrutura de dados na qual os elementos são inseridos e removidos somente em uma extremidade, chamada
ser implementada utilizando um vetor ou uma lista encadeada com descritores. As operações básicas de uma pilha são `push` (inserir elemento no topo) e `pop` (r
topo).
typedef struct no{
float info;
struct no* prox;}No;
struct pilha{
No* topo; // guarda o último inserido
int qtd;}
Fila (circular com vetor + encadeada com descritores): é uma estrutura de dados na qual os elementos são inseridos em uma extremidade (fim) e removidos na ou
(início). A fila pode ser implementada utilizando um vetor de forma circular ou uma lista encadeada com descritores. As operações básicas de uma fila são `enqueu
no fim) e `dequeue` (remover elemento do início).
4
2 6
1 3 5 7
Fator de balanceamento ou fator de equilíbrio de um nó T em uma árvore binária é definido como sendo hE – hD onde hE e hD são as alturas das sub-
árvores esquerda e direita de T, respectivamente. (h= altura, E=esquerda, D=Direita)
Para qualquer nó T numa árvore AVL, o fator de balanceamento assume o valor -1, 0 ou +1
Rebalanceamento FB(fator de balanceamento):
LL => FB(pai) = +2 ; FB(esq) >= 0 | Rotação Simples à Direita (RSD)
RR => FB(pai) = -2 ; FB(dir) <= 0 | Rotação Simples à esquerda (RSE)
LR => FB(pai) = +2 ; FB(esq) < 0 | RSE(esq) depois RSD(pai)
RL => FB(pai) = -2 ; FB(dir) > 0 | RSD(dir) depois RSE(pai)
static no* rot_dir( no* k2 ){
no* k1 = NULL;
k1 = k2->esq;
k2->esq = k1->dir;
k1->dir = k2;
k2->alt = max( calc_alt( k2->esq ), calc_alt( k2->dir ) ) + 1;
k1->alt = max( calc_alt( k1->esq ), k2->alt ) + 1;
return k1; /* nova raiz */}