Você está na página 1de 3

Nome: André luis costa da silva

1)== void SeparaParImpar(pilha *p, pilha *par, pilha *impar) {

pilha *aux = cria(); // Pilha auxiliar para armazenar temporariamente os elementos

while (!vazia(p)) {

int elemento = desempilha(p); // Remove um elemento da pilha p

if (elemento % 2 == 0) {

empilha(par, elemento); // Se o elemento é par, empilha na pilha par

} else {

empilha(impar, elemento); // Se o elemento é ímpar, empilha na pilha ímpar

libera(aux); // Libera a pilha auxiliar

2)== void preenche(fila *f1, fila *f2, fila *retorno) {

fila *aux = cria(); // Fila auxiliar para realizar a intercalação dos elementos

while (!vazia(f1) && !vazia(f2)) {

float elemento1 = retira(f1); // Remove um elemento da fila f1

float elemento2 = retira(f2); // Remove um elemento da fila f2

// Verifica qual elemento é menor e insere na fila de retorno

if (elemento1 <= elemento2) {

insere(retorno, elemento1);

insere(aux, elemento2);

} else {

insere(retorno, elemento2);
insere(aux, elemento1);

// Insere os elementos restantes da fila f1 na fila de retorno

while (!vazia(f1)) {

float elemento = retira(f1);

insere(retorno, elemento);

// Insere os elementos restantes da fila f2 na fila de retorno

while (!vazia(f2)) {

float elemento = retira(f2);

insere(retorno, elemento);

// Copia os elementos da fila auxiliar de volta para a fila f2

while (!vazia(aux)) {

float elemento = retira(aux);

insere(f2, elemento);

libera(aux); // Libera a fila auxiliar

3)== typedef struct no {

int valor;

struct no *esquerda;

struct no *direita;

} no;

typedef no *arv;
int altura(arv *a) {

if (*a == NULL) {

return 0; // Árvore vazia, altura é 0

} else {

int altura_esquerda = altura(&((*a)->esquerda));

int altura_direita = altura(&((*a)->direita));

// Retorna a maior altura entre a subárvore esquerda e a subárvore direita, mais 1 para
considerar a raiz

return 1 + (altura_esquerda > altura_direita ? altura_esquerda : altura_direita);

4)== void não_imprime_folhas(arv *a) {

if (*a != NULL) {

não_imprime_folhas(&((*a)->esq));

if ((*a)->esq != NULL || (*a)->dir != NULL) {

printf("%d ", (*a)->info); // Imprime o valor se não for uma folha

não_imprime_folhas(&((*a)->dir));

5)==

Você também pode gostar