ATENCAO!!! ========== - `As listas que nao processarem os arquivos de acordo com as especificacoes abaixo, sera' atribuida a nota 0 (zero). - Nada devera ser impresso na tela!! ------------- - Questao 1 - ------------- Arquivo fonte: quest1.c Arquivo de entrada: quest1.in O arquivo de entrada consiste de varios conjuntos de dados. Cada conjunto comeca com uma linha contendo o numero "x" de elementos da arvore. A proxima linha contem "x" numeros, que devem ser inseridos na ordem em que aparecem em uma arvore de busca binaria. O arquivo de entrada e' terminado por um conjunto de dados comecando com "x = 0". Esse conjunto nao deve ser processado. Entrada exemplo: 4 -10 125 0 130 1 10000 0 A arvore do primeiro conjunto corresponde a: -10 \ 125 / \ 0 130 A arvore do segundo conjunto corresponde a: 10000 Arquivo de Saida: quest1.out Para cada conjunto, primeiro imprima o numero do conjunto, como mostrado na saida exemplo. Entao, imprima para cada no' da arvore o seu fator de equilibrio. Uma linha em branco separa cada conjunto. Saida exemplo correspondente `a entrada acima: Conjunto #1 0 0 130 0 125 0 -10 -2 Conjunto #2 10000 0 Observacoes: - Nao serao inseridos dois elementos iguais; - A ordem de impressao dos nos deve ser pos-ordem (primeiro sub-arvore esquerda, depois a sub-arvore direita e depois o no'). ------------------------ - Questao 2 (Turma I2) - ------------------------ Arquivo fonte: quest2.c Arquivo de entrada: quest2.in Cada linha do arquivo de entrada contera' uma das seguintes instrucoes: - Z -> Apagar todos os elementos do heap; - I (n) -> Inserir o elemento "n" no heap; - R -> Remover a raiz do heap; - L -> Listar os elementos do heap; - END -> Indica final do arquivo. Entrada exemplo: I (50) I (100) I (120) L R R Z R L END Arquivo de Saida: quest2.out Cada linha do arquivo de saida contera' uma das seguintes mensagens dependendo da entrada: - Z -> "Todos elementos foram apagados." - I (n) -> "O elemento n foi inserido." - R -> "O elemento "n" foi removido." ou "Underflow!"; - L -> "Os elementos do heap sao: ..." ou "Heap vazio." Saida correspondente a entrada acima: O elemento 50 foi inserido. O elemento 100 foi inserido. O elemento 120 foi inserido. Os elementos do heap sao: 120 50 100 O elemento 120 foi removido. O elemento 100 foi removido. Todos elementos foram apagados. Underflow! Heap vazio. Observacoes: - As funcoes para inserir e remover de um heap alem de manter a propriedade de heap (um pai deve ser maior que todos seus filhos), deve ficar sem espacos em branco entre elementos da representacao via array. - Consideraremos apenas heaps binarios; - Nao serao inseridos dois elementos iguais. -------------- - Questao 3 - ______________ Arquivo fonte : quest3.c Arquivo de Entrada : quest3.in Os dados a serem manipulados serão do tipo string. Cada linha do arquivo de entrada contera uma das seguintes instruções: - E (n) -> Verifica se "n" esta' no dicionario ou nao; - I (n) -> Inserir o elemento "n" no dicionario; - S (n) -> Remover o elemento "n" do dicionario; - Z -> Apagar todos os elementos do dicionario; - F -> Indica final do arquivo. Entrada exemplo: E ( joao ) I ( joao ) I ( maria ) E ( carro ) I ( abcde ) S ( maria ) E ( joao ) S ( carro ) I ( carro ) I ( casa ) S ( carro ) Z S ( casa ) F Arquivo de Saida: quest3.out - E (n) -> "O elemento "n" esta' no dicionario." ou "O elemento "n" nao esta' no dicionario." ou "O dicionario esta' vazio." - I (n) -> "O elemento "n" foi inserido no dicionario." - S (n) -> "O elemento "n" foi removido."ou "Underflow!" ou "O elemento "n" nao esta' no dicionario." - Z -> "Todos elementos foram apagados." Saida correspondente a entrada acima: O dicionario esta' vazio. O elemento "joao" foi inserido. O elemento "maria" foi inserido. O elemento "carro" nao esta' no dicionario. O elemento "abcde" foi inserido. O elemento "maria" foi removido. O elemento "joao" esta' no dicionario. O elemento "carro" nao esta' no dicionario. O elemento "carro" foi inserido. O elemento "casa" foi inserido. O elemento "carro" foi removido. Todos elementos foram apagados. Underflow! Qualquer duvida, procurar-nos nos horarios de monitorias ou via e-mail (ambos estao disponiveis na home page da disciplina). Os Monitores.