Exercício 2
Considere o TAD rbt e a implementação dada na teórica (ficheiros:
tadrbt.h, tadrbt.c e rbtmain.c):
- insira os seguintes valores numa rbt: 12 14 15 17 3 4 6 9 1 11;
pela ordem indicada. indique para cada inserção qual a rbt obtida.
- implemente a operação altura_preta de uma rbt.
teste a sua função para diferentes rbts.
- Implemente a operação sucessor valor, que deve devolver o
sucessor do valor.
teste a sua função para diferentes rbts.
- Implemente a operação pesquisa_rbt valor, que deve retornar o nó com chave valor.
- Implemente a operação maximo_rbt, que deve retornar a maior chave.
- Implemente a operação minimo_rbt, que deve retornar a menor chave.
- Implemente a operação lista_ord_rbt, que deve listar os elementos por ordem decrescente.
- Implemente a operação é_rbt que dada uma struct rbt verifica se as 4 propriedades se verificam.
- Um nó ou é preto ou vermelho
- Uma folha (NIL) é preta.
- Se um nó é vermelho então os seus dois filhos são pretos
- Qualquer caminho de um nó a uma folha tem sempre o mesmo número de nós pretos.
- A resolução deste exercício deve ser enviada por email para o
docente das práticas [ pp@di.uevora.pt ] até 25/03/2003 às 23.59 (hora do servidor de mail). O email deve
conter ainda os números de aluno e os nomes dos elementos do
grupo. Por cada dia de atraso serão descontados 2n-1 valores na
nota do trabalho (n = número de dias em atraso).