Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITMOS E ESTRUTURA DE DADOS 3 PROVA 2ª ÉPOCA – 2.o SEMESTRE 2012 NOME: QUESTÃO 1 (3 PONTOS) Dada a árvore binária e o pseudo-código abaixo, qual será o resultado da execução da Funcao1 nesta árvore, passando como parâmetro o ponteiro raizArvore? Obs: A função Imprime envia para a tela um número inteiro. Funcao1(NO *no) INICIO Se (no != NULO) INICIO Funcao1 (no->esquerdo) Visita (no) Funcao1 (no->direito) FIM FIM Visita(NO* no) INICIO Se (no->dado%2 == 0) Imprime(no->dado + 3) FIM QUESTÃO 2 (3 PONTOS) Dado o código fonte a seguir, pede-se: Qual o valor retornado pela função1 quando o parâmetro de entrada for 6? int funcao1(int n) { if (n < 1) { return (1); } else { return (funcao1 (n-1) + funcao1 (n-2)); } } QUESTÃO 3 (2 PONTOS) Como é definida uma FILA implementada com uma lista ligada simples? (2 PONTOS) raizArvore QUESTÃO 4 (4 PONTOS) Dados: • o código fonte da Funcao1; • os elementos que serão carregados na lista ligada que será passada como parâmetro (cabeca); pede-se: qual será a o valor retornado pela Funcao1. Elementos Chave Nome Tel Idade 1 Fulano1 11111111 10 2 Fulano1 22222222 11 3 Fulano1 00001111 10 4 FULANO1 33333333 20 5 Fulano3 11111111 10 6 Fulano3 44444444 11 7 Fulano4 11111111 15 Código Fonte //Estrutura do Elemento da Agenda typedef struct Item{ int Chave; char Nome[255]; char Tel[10]; int Idade; }ELEMENTO; //Estrutura da celula de uma lista ligada typedef struct celula{ ELEMENTO dado; struct celula *prox; }CELULA; int Funcao1(CELULA *cabeca) { CELULA *p; CELULA *q = NULL; int i = 0; p = cabeca; while(p != NULL) { if (q != NULL) { if ((strcmp(p->dado.Nome, q->dado.Nome) == 0) { if(p->dado.Idade != q->dado.Idade) { i++; } } } q = p; p = p->prox; } return (i); }
Compartilhar