int Lista<T>::posicao(T dado) { if (listaVazia()) { throw ExcecaoListaVazia(); } for (int i = 0; i <= ultimo; i++) { if (igual(dado, lista[i])) { return i; } } throw ExcecaoDadoNaoEncontrado(); }
int ListaCirc<T>::posicao(const T& dado) const { if (ListaEnc<T>::listaVazia()) { throw ExcecaoListaVazia(); } Elemento<T>* atual = this->cabeca->getProximo(); for (int i = 0; i < this->tamanho; i++) { if (dado == atual->getInfo()) { return i; } atual = atual->getProximo(); } throw ExcecaoDadoNaoEncontrado(); }
int ListaDupla<T>::posicaoDuplo(const T& dado) const { if (listaVazia()) { throw ExcecaoListaVazia(); } ElementoDuplo<T>* atual = cabeca; for (int i = 0; i < tamanho; i++) { if (dado == atual->getInfo()) { return i; } atual = atual->getProximo(); } throw ExcecaoDadoNaoEncontrado(); }