Algoritmos e Estrutura de Dados I - AE22CP - 2012/2

Bruno César Ribas

Exercícios - Lista 3

  1. http://br.spoj.com/problems/COFRE/

  2. O que é Algoritmo?

  3. http://br.spoj.com/problems/BIT/

  4. http://br.spoj.com/problems/VIVO/

  5. lista3.pdf

  6. http://br.spoj.com/problems/MITO09/

  7. http://br.spoj.com/problems/PAPEL09/

  8. Crie uma função NÃO recursiva que mostre o conteúdo de uma lista ao contrário: L1 = 23, 45, 12, 0, 9 deve mostrar 9, 0, 12, 45, 23.

  9. Crie uma função busca_binaria() que realiza uma busca binária num vetor, passado como parâmetro. A função deve retornar a posição do elemento procurado dentro do vetor, caso exista, ou -1 caso este não exista. Você não deve utilizar variáveis globais, logo todas as informações necessárias para a função busca binária funcionar devem ser fornecidas nos parâmetros da mesma.

  10. Implemente a função busca_binaria() não recursiva.

  11. Equilibrio do Mundo
  12. Suponha que queremos decidir se uma dada sequência de parênteses e colchetes está bem-formada (ou seja, parênteses e colchetes são fechados na ordem inversa àquela em que foram abertos). Por exemplo, a primeira das sequências abaixo está bem-formada enquanto a segunda não está.

      Primeira cadeia - ( ( ) [ ( ) ] )
      Segunda cadeia - ( [ ) ]
    

    Suponha que a sequência de parênteses e colchetes está armazenada em uma cadeia de caracteres (string) s. Como é hábito em C, o último caractere da cadeia é o caractere nulo.

    Escreva a função int bem_formada ( char *string ) que retorna 1 se a string está bem formada, senão retorna 0.

  13. Crie uma função que varre uma lista de números inteiros e diz se ela está ordenada ou não. Além disse, deve dizer se está ordenada em ordem crescente ou decrescente.

  14. Cria uma estrutura lista para armazenar os n pontos de um polígono. Crie as funções:
    • inicializa()
    • insere_pontos_na_lista()
    • calcula_perimetro_poligono()

      Exemplo de entrada:
        4
        2 2
        4 4
        6 2
        4 0
      
      Saida Para o exemplo acima:
        11.313708
      

--
Last Modified: Mon Dec 10 17:42:55 2012.