Inserção Ordenada
Next: Remoção
Up: Algoritmos de Inserção
Previous: Inserção no Fim
Neste algoritmo o valor é inserido de tal modo que a tabela continue ordenada.
Isso é conseguido em três passos:
- É procurada a posição em que o valor deverá ficar (corresponde a procurar a primeira posição da tabela que tem um valor maior do que o que queremos colocar na tabela).
- Todos os valores, a partir deste, são avançados uma posição para permitir colocar o valor a inserir.
- O valor é colocado na posição encontrada em 1.
O algoritmo é:

Este algoritmo utiliza as seguintes funções auxiliares (supondo que a tabela está ordenada por Classificação: campo CLASS):


Note-se que na função procura_pos a condição:
(list.CARROS[i].CLASS<elem.CLASS)
(i
list.TOTAL)
deixa o valor da variável i, passar para além do fim da tabela, o que poderia originar uma situação de erro: uma tentativa de aceder a uma posição inexistente da tabela.
No entanto, como se trata do fim lógico da tabela
e a função só é invocada se houver espaço para mais elementos (ver algoritmo 6.2), nunca acontecerá uma situação em que o valor da variável i seja um índice inválido de list.CARROS.
Jose Franscisco Creissac Campos
Wed Jan 31 22:03:31 MET 1996