Além das operações fundamentais de inserção (put) e busca (get), uma tabela de símbolos pode aceitar operações adicionais. Algumas dessas operações só fazem sentido se a TS for ordenada.
Destaques:
Pré-requisitos:
void | delete(Key key) | remove chave key e o correspondente valor |
Key | min() | a menor chave desta TS |
Key | max() | a maior chave desta TS |
Key | floor(Key key) | o piso de key, ou seja, a maior chave ≤ key |
Key | ceiling(Key key) | o teto de key, ou seja, a menor chave ≥ key |
Key | select(int k) | chave cujo posto é k |
void | deleteMin() | remove a menor chave (e o valor associado) |
void | deleteMax() | remove a maior chave (e o valor associado) |
public Key min() { return keys[0]; } public Key max() { return keys[N-1]; } public Key select(int k) { return keys[k]; } public Key ceiling(Key key) { int i = rank(key); return keys[i]; }
método |
ordem de crescimento do tempo de execução |
delete() | N |
min() | 1 |
max() | 1 |
floor() | log N |
ceiling() | log N |
rank() | log N |
select() | 1 |
deleteMin() | N |
deleteMax() | 1 |