/*
     * @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));
			}
		}
Example #4
0
 /*!
 \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;
     }
 }
Example #5
0
 /*!
 \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);
		}
Example #7
0
	T retiraEspecificoDuplo(const T& dado) {
        //caso erro refazer este método
        return retiraDaPosicaoDuplo(posicaoDuplo(dado));
    }
Example #8
0
	T retiraDuplo() {
        if(listaVazia()) {
            throw 20;
        }
        return retiraDaPosicaoDuplo(size-1);
    }
Example #9
0
	/**
	 * @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);
 }