/* * @brief Metodo retiraDuplo * @details Metodo para retirar um elemento da Lista * @return Retorna a chamada do metodo 'retiraDaPosicao' com parametro 'tamanho-1' */ T retiraDuplo() { if (listaVazia()) { throw("Lista vazia"); } else { return retiraDaPosicaoDuplo(tamanho-1); } }
/* * @brief Metodo retiraEspecificoDuplo * @details Metodo para retirar um elemento especifico da Lista * @param O parametro 'dado' é o elemento especifico a ser retirado da lista * @return Retorna o dado a ser retirado */ T retiraEspecificoDuplo(const T& dado) { if (listaVazia()) { throw("Lista Vazia"); } else { return (retiraDaPosicaoDuplo(posicaoDuplo(dado))); } }
/*! * \brief Funcao retiraEspecificoDuplo * \param dado passado por referencia e um tipo generico constante * que representa o dado que deve ser retirado da lista. * \return uma chamada para a funcao retiraDaPosicao. * \sa listaVazia(), posicaoDuplo(...), retiraDaPosicaoDuplo(...) * * Se a lista nao estiver vazia, entao chama a funcao posicaoDuplo * para ter o local do dado passado como argumento e passa esse * local para a funcao retiraDaPosicaoDuplo que fara o processo * de retirada do dado. */ T retiraEspecificoDuplo(const T &dado) { if (listaVazia()) { throw "problema"; } else { return retiraDaPosicaoDuplo(posicaoDuplo(dado)); } }
/*! \param dado um elemento a ser retirado da lista \return as informações do dado retirado da lista \sa retiraDuplo(), retiraDoInicioDuplo(), eliminaDoInicioDuplo(), retiraDaPosicaoDuplo() */ T retiraEspecificoDuplo(const T& dado) { try { return retiraDaPosicaoDuplo(posicaoDuplo(dado)); } catch (std::exception& e) { throw e; } }
/*! \return as informações do elemento retirado do fim da lista \sa retiraDoInicioDuplo(), eliminaDoInicioDuplo(), retiraDaPosicaoDuplo(), retiraEspecificoDuplo() */ T retiraDuplo() { return retiraDaPosicaoDuplo(size-2); }
/*! * \brief Funcao retiraDuplo * \param nao possui. * \return o tipo generico que representa o dado retirado da lista. * \sa listaVazia(), retiraDaPosicaoDuplo(...) * * Se a lista nao estiver vazia, entao \return uma chamada para a * funcao retiraDaPosicao realizar o processo de remocao na * posicao tamanho - 1. */ T retiraDuplo() { if (listaVazia()) throw "problema"; else return retiraDaPosicaoDuplo(size-1); }
T retiraEspecificoDuplo(const T& dado) { //caso erro refazer este método return retiraDaPosicaoDuplo(posicaoDuplo(dado)); }
T retiraDuplo() { if(listaVazia()) { throw 20; } return retiraDaPosicaoDuplo(size-1); }
/** * @brief Retira um elemento que tenha um dado específico e retorna * seu dado * * @details Utiliza o método retiraDaPosicaoDuplo() com paramêtro o método * posicaoDuplo() */ T retiraEspecificoDuplo(const T& dado) { return retiraDaPosicaoDuplo(posicaoDuplo(dado)); }
/** Retira um objeto específico da Lista Duplamente Encadeada. * Este método retira o primeiro objeto da Lista Duplamente Encadeada que tem o mesmo valor do dado fornecido. * @see retiraDaPosicaoDuplo(int pos) * @see posicaoDuplo(int pos) * @return o objeto do tipo T que foi retirado da Lista. */ virtual T retiraEspecificoDuplo(const T& dado) { int posicao = posicaoDuplo(dado); return retiraDaPosicaoDuplo(posicao); }
/** Retira o último elemento da Lista. * Este método retira o último elemento da Lista Duplamente Encadeada. * @see retiraDaPosicaoDuplo(int pos) * @return o dado do tipo T que foi retirado do final da Lista. */ virtual T retiraDuplo() { return retiraDaPosicaoDuplo(size - 1); }