Considere o TAD trie e a implementação dada na teórica (ficheiro .tgz com a base):

  1. insira os seguintes valores numa trie: "abc", "abcde", "efg", "efgaa" e "bfg" pela ordem indicada. indique para cada inserção qual a trie obtida.

  2. remova os seguintes valores da trie da alínea anterior: "abc" e "efgaa" pela ordem indicada. indique para cada remoção qual a trie obtida.

  3. implemente a operação remove que dada uma chave e uma trie remove a chave da trie.

    teste a sua função com as remoções da alínea 2.

  4. implemente a função mínima que devolve a menor chave na trie.

    teste a sua função com as tries da alínea 1.

  5. Implemente a operação pesquisa, que dada uma chave devolve true se ela está na trie, false senão.

    teste a sua função para as diferentes tries da alínea 1.

  6. Implemente a operação próxima, que dada uma chave devolve a próxima chave na trie (ordem alfabética).

  7. Suponha que além de palavras gostaria de guardar num dicionário as linhas onde as palavras ocorrem.
    1. Altere o tipo trie, e a função insere para inserir uma chave e a linha onde ocorre (note que uma palavra pode ocorrer em várias linhas).

    2. Altere a função lista_ord para listar as palavras por ordem alfabética e as linhas onde a palavra ocorre.

    3. Defina a operação palavrasNaLinha que dada uma linha lista todas as palavras que ocorrem na linha.