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 |