コード例 #1
0
	bool gambs_pontoPertence(ListaEnc<Coordenada> pontos, Coordenada obj){
		Elemento<Coordenada>* it = pontos.getHead();
		for(int i =0; i<pontos.getSize(); i++){
			if(igual(it->info->getX(),obj.getX()) && igual(it->info->getY(),obj.getY()))
				return true;
			it = it->_next;
		}
		return false;
	}
コード例 #2
0
	//Obs: não consegui passar parâmetro null para fazer uma única funćão
	void insereNoObjeto(ListaEnc<Coordenada>* pontosObjeto, Coordenada ref, Coordenada pontoA){
		int pos = 0;
		Elemento<Coordenada> *it_lista = pontosObjeto->getHead();
		while(!igual(it_lista->info->getX(),ref.getX()) || !igual(it_lista->info->getY(),ref.getY())){//busca como referência o ponto A
			it_lista = it_lista->_next;
			pos++;
		}
		pos++;
		pontosObjeto->adicionaNaPosicao(pontoA, pos);
	}
コード例 #3
0
ファイル: lista.c プロジェクト: pedropaulovc/UFSC
/**
NOME DA FUNÇÃO: contem
ALUNOS: Pedro Paulo e Felipe dos Santos
PROPÓSITO:
		retorna 1 se a lista contém um elemento fornecido e 0 em caso contrário.

PARÂMETROS:
nome         tipo             valor/referência   descrição
---------------------------------------------------------------------
dado         tAgenda          valor              elemento a ser procurado

VALOR DE RETORNO:
nome           tipo  descrição
---------------------------------------------------------------------
--             int   1 caso o contato pertença à lista e 0 em caso contrário


*/
int contem(tAgenda dado) {
	int i;
	for (i = 0; i <= aLista.ultimo; i++)
		if (igual(dado, aLista.elem[i]))
			return 1;
	return 0;
}
コード例 #4
0
	T mostra(int posicao) {
		T dado = dados[0];
		for(int i = 0; i <= ultimo; i++) {
			if (igual(dados[i], dado)) {
				return dados[i];
			}
		}
		throw ExcecaoErroPosicao;
	}
コード例 #5
0
ファイル: ListaEnc.hpp プロジェクト: deciomoritz/CG2015.2
	int posicao(const T& dado) const{
		Elemento<T> *aux = head;
		for (int j = 0; j < size; j++){
			if(igual(*aux->info, dado))
				return j;
			aux = aux->_next;
		}
		return -1;
	}
コード例 #6
0
	/** Verifica se a Lista contêm o elemento especificado.
	* @param dado O dado que será verificado a existência dentro da Lista.
	* @return um boolean que indica se a Lista contêm ou não o elemento especificado.
	*/
	bool contem(T dado) {
	    int igl = 0;
		for(int i = 0; i < tamanho; i++) {
			if (igual(dados[i], dado)) {
				igl = 1;
				break;
			}
		}
		return igl == 1;
	}
コード例 #7
0
ファイル: ListaEnc.cpp プロジェクト: zimathj/trab_ed
    /*!
        \return Retorna um ponteiro do tipo T para o dado.
        \param dado eh o endereço do dado do tipo T que sera procurado na lista.
    */
	T* posicaoMem(const T& dado) const {
		Elemento<T>* aux;
		aux = head;
		for (int controle = 0; controle < size; controle++) {
			if (igual(aux->getInfo(), dado))
				return aux;  // tem diferenca aqui
			aux = aux->getProximo();
		}
		throw(20);
	}
コード例 #8
0
ファイル: ListaEnc.cpp プロジェクト: zimathj/trab_ed
    /*!
        \return Retorna true se o o dado estivar na lista.
        \param dado eh o endereço do dado do tipo T a ser verificado.
    */
	bool contem(const T& dado) {
        Elemento<T> *aux;
        aux = head;
        for (int controle = 0; controle < size; controle++) {
        if (igual(aux->getInfo(), dado))
            return true;
        aux = aux->getProximo();
      }
      return false;
    }
コード例 #9
0
ファイル: Lista.hpp プロジェクト: marcoludd/UFSC-INE5408
bool Lista<T>::contem(T dado) {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	for (int i = 0; i <= ultimo; i++) {
		if (igual(dado, lista[i])) {
			return true;
		}
	}
	return false;
}
コード例 #10
0
ファイル: Lista.hpp プロジェクト: marcoludd/UFSC-INE5408
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();
}
コード例 #11
0
ファイル: Lista.hpp プロジェクト: victorfeijo/INE5408
 //comentário
 int posicao(T dado)
 {
     int pos = 0;
     while (pos <= ultimo && !(igual(dado, dados[pos])))
     {
       pos++;
     }
     if (pos > ultimo)
       throw 20;
     return pos;
 }
コード例 #12
0
	/*
     * @brief Metodo pegar a posição de um elemento da Lista
     * @details Cria uma variavel auxiliar chamada 'pos', apos isso é feito um laço de repetição que
     * verifica se ainda não chegamos ao fim da lista e chama o metodo 'igual' para verificar
     * se a posição do parametro 'dado' ja foi encontrada.
     * Apos isso é verificado se a posição encontrada é valida, ou seja, se o dado na varival 'pos' é menor ou igual a variavel 'fim'
     */
	int posicao(T dado) {
	    int pos = 0;
        while (pos <= fim && !(igual(dado, dados[pos]))) {
            pos += 1;
        }
        if (pos > fim) {
            throw(ERROPOSICAO);
        } else {
            return (pos);
        }
	}
コード例 #13
0
ファイル: Lista.hpp プロジェクト: victorfeijo/INE5408
  //comentário
  bool contem(T dado)
  {
      int pos = 0;
      while (pos <= ultimo && !(igual(dado, dados[pos])))
      {
        pos++;
      }
      if (pos > ultimo)
        return false;

      return true;
  }
コード例 #14
0
	/** Verifica se um determinado elemento existe na Lista. Se sim, retorna a sua posição.
	* @param dado O dado que será verificado a existência dentro da Lista.
	* @exception ExcecaoErroPosicao Exceção que indica que o elemento enviado via argumento não existe dentro dessa Lista.
	* @return um int que indica a posição do elemento que foi encontrado na Lista.
	*/
	int posicao(T dado) {
	    int i;
		for(i = 0; i <= ultimo; i++) {
			if (igual(dados[i], dado)) {
				break;
			}
		}
		if (i > ultimo) {
			throw ExcecaoErroPosicao;
		}
		return i;
	}
コード例 #15
0
ファイル: ListaCirc.hpp プロジェクト: MaoRodriguesJ/INE5408
	/**
	 * @brief 		Retorna a posição de um dado específico
	 *
	 * @param 		dado  Dado a ser pesquisado
	 *
	 * @details 	Os índices de posição começam em 0 e vão até size-1, ou seja,
	 * 				com uma lista de 10 elementos as posições estão numeradas de
	 * 				0 a 9
	 */
	int posicao(const T& dado) const {
		if(listaVazia()) {
			throw std::runtime_error("Lista Vazia");
		}
		Elemento<T> *atual = head;
		for(int i = 0; i < size; i++) {
			if(igual(dado, atual->getInfo())) {
				return i;
			}
			atual = atual->getProximo();
		}
		throw std::runtime_error("Este dado não existe");
	}
コード例 #16
0
ファイル: ListaEnc.hpp プロジェクト: marcoludd/UFSC-INE5408
bool ListaEnc<T>::contem(const T& dado) {
    if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	Elemento<T>* atual = cabeca;
	for (int i = 0; i < tamanho; i++) {
		if (igual(dado, atual->getInfo())) {
			return true;
		}
		atual = atual->getProximo();
	}
    return false;
}
コード例 #17
0
ファイル: ListaEnc.hpp プロジェクト: MaoRodriguesJ/INE5408
T* ListaEnc<T>::posicaoMem(const T& dado) const {
	if (listaVazia()) {
		throw std::runtime_error("Lista Vazia");
	} else {
		Elemento<T>* aux = head;
		for (int i = 0; i < size; ++i) {
			if (igual(dado, aux->getInfo())) {
				return aux;
			}
			aux = aux->getProximo();
		}
		throw std::runtime_error("Não Contém");
	}
}
コード例 #18
0
ファイル: lista.c プロジェクト: pedropaulovc/UFSC
/**
NOME DA FUNÇÃO: obterContatoPeloNome
ALUNOS: Pedro Paulo e Felipe dos Santos
PROPÓSITO:
	retorna um contato armazenado que coincida com o nome fornecido, ou um contato
	que informa que a posicão é inválida em caso de erro.

PARÂMETROS:
nome         tipo             valor/referência   descrição
---------------------------------------------------------------------
nome         char*            referência         nome a ser procurado

VALOR DE RETORNO:
nome           tipo      descrição
---------------------------------------------------------------------
contat         tAgenda   o contato buscado

*/
tAgenda obterContatoPeloNome(char* nome) {
	int i;
	tAgenda contato;
	strcpy(contato.nome, nome);

	for (i = 0; i <= aLista.ultimo; i++)
		if (igual(contato, aLista.elem[i]))
			return aLista.elem[i];

	strcpy(contato.nome, "Nome não consta na lista.");
	contato.numero = ERRO_POSICAO_INVALIDA;

	return contato;
}
コード例 #19
0
/** Verifica a posição de memória de um dado já inserido na Lista.
* Este método recebe um dado que será analisado para verificar se este dado está dentro da Lista.
* @param dado O dado que será verificado a existência dentro da lista.
* @see listaVazia()
* @see igual(const T dado1, const T dado2)
* @exception ExcecaoListaVazia Exceção que indica que a lista está vazia, ou seja, não tem como esse dado existir dentro da Lista Encadeada.
* @exception ExcecaoErroPosicao Exceção que indica que o dado do tipo T fornecido não está presente na lista.
* @return um ponteiro para T que indica a posição de memória em que o dado se encontrava.
*/
    T* posicaoMem(const T& dado) const {
        if (listaVazia()) {
            throw ExcecaoListaVazia;
        } else {
            Elemento<T> *atual = head;
            for (int i = 0; i < size; i++) {
                if (igual(atual->getInfo(), dado)) {
                    return &atual->getInfo();
                }
                atual = atual->getProximo();
            }
        }
        throw ExcecaoErroPosicao;
    }
コード例 #20
0
	/**
	 * @brief 		Retorna o ponteiro para posição de um dado específico
	 *
	 * @param 		dado  Dado a ser pesquisado
	 */
	T* posicaoMemDuplo(const T& dado) const {
		if(listaVazia()) {
			throw std::runtime_error("Lista Vazia");
		}
		ElementoDuplaEnc<T> *atual = head;
		for(int i = 0; i < size; i++) {
			if(igual(dado, atual->getInfo())) {
				return atual;
			} else {
				atual = atual->getProximo();
			}
		}
		throw std::runtime_error("Este dado não existe");
	}
コード例 #21
0
ファイル: ListaEnc.hpp プロジェクト: MaoRodriguesJ/INE5408
bool ListaEnc<T>::contem(const T& dado) {
	if (listaVazia()) {
		throw "ErroListaVazia";
	} else {
		Elemento<T>* aux = head;
		for (int i = 0; i < size; ++i) {
			if (igual(dado, aux->getInfo())) {
				return true;
			}
			aux = aux->getProximo();
		}
		return false;
	}
}
コード例 #22
0
ファイル: tree_t.hpp プロジェクト: jurses/algoritmos
	tree_node_t<T>* tree_t<T>::find(tree_node_t<T>*& root, const T& data) const
	{
		if (root == NULL)
			return root;
		else{
			if (igual(root->get_data(), data))
				return root;
			else{
				if (menor(data, root->get_data()))
					return find(root->get_left(), data);
				else
					return find(root->get_right(), data);
			}
		}
	}
コード例 #23
0
// especifico
const ElementoGeometrico* ListaElementosGeometricos::retiraEspecifico(const ElementoGeometrico*& dado){
	
	Elemento<const ElementoGeometrico*> *atual = head->getProximo();
	Elemento<const ElementoGeometrico*> *proximo;
	for(int i = 0; i < size; i++){
		
		if (igual(*atual->getInfo(),dado))
			return atual->getInfo();
		
		proximo = atual->getProximo();
		atual = proximo;
	}
	
	return new ElementoGeometrico(ElementoGeometrico::null);
}
コード例 #24
0
	/** Verifica se um determinado elemento existe na Lista. Se sim, retorna a sua posição.
	* @param dado O dado que será verificado a existência dentro da Lista.
	* @exception ExcecaoErroPosicao Exceção que indica que o elemento enviado via argumento não existe dentro dessa Lista.
	* @return um int que indica a posição do elemento que foi encontrado na Lista.
	*/
	int posicao(T dado) {
	    int posicao = 0;
		for(int i = 0; i <= ultimo; i++) {
			if (igual(dados[posicao], dado)) {
				break;
			} else {
				posicao++;
			}
		}
		if (posicao > ultimo) {
			throw ExcecaoErroPosicao;
		} else {
			return posicao;
		}
	}
コード例 #25
0
bool ListaElementosGeometricos::contem(const ElementoGeometrico*& dado){
	
	Elemento<const ElementoGeometrico*> *atual = head->getProximo();
	Elemento<const ElementoGeometrico*> *proximo;
	for(int i = 0; i < size; i++){
		
		if (igual(*atual->getInfo(),dado))
			return true;
		
		proximo = atual->getProximo();
		atual = proximo;
	}
	
	return false;
}
コード例 #26
0
ファイル: ListaCirc.hpp プロジェクト: MaoRodriguesJ/INE5408
	/**
	 * @brief 		Verifica se a lista contém um dado específico, retornando
	 * 				true caso exista um elemento com esse dado
	 *
	 * @param 		dado  Dado a ser pesquisado
	 */
	bool contem(const T& dado) const {
		if(listaVazia()) {
			return false;
		} else {
			Elemento<T> *atual = head;
			for(int i = 0; i < size; i++) {
				if(igual(dado, atual->getInfo())) {
					return true;
				} else {
					atual = atual->getProximo();
				}
			}
			return false;
		}
	}
コード例 #27
0
ファイル: CabecaDeLista.cpp プロジェクト: willkraemer/ED
/**
 * Método que identifica a posição de um objeto da classe ElementoDeLista recebido por parâmetro.
 *
 *  @param elemento = objeto da classe ElementoDeLista.
 *
 * @return LISTA_VAZIA = constante que informa que não ha elementos na Lista.
 * @return ERRO_POSICAO caso o objeto em questão nao esteja na Lista.
 * @return posicao = posição onde o ElementoDeLista se encontra na Lista.
 */
int CabecaDeLista::posicao(ElementoDeLista *elemento) {
	if (vazia()) {
		return LISTA_VAZIA;
	}
	int posicao = 1;
	ElementoDeLista *atual;
	atual = primeiro;
	while (atual != 0 && !(igual(atual->info, elemento->info))) {
		atual = atual->proximo;
		posicao++;
	}
	if (atual == 0) {
		return ERRO_POSICAO;
	}
	return posicao;
}
コード例 #28
0
		/*!
		 *  \brief Funcao contemDuplo
		 * 	\param dado passado por referencia e um tipo generico constante
		 *		que representa o dado que sera procurado na lista.
		 *	\return um valor booleano que indica se a lista possui ou nao o
		 *		valor passado.
		 *	\sa igual(...)
		 *
		 * 	Caminha por todos vertices da estrutura e para cada um deles
		 *		compara o elemento com o dado passado como argumento atraves
		 *		da funcao igual. Se houver igualdade, entao o laco e parado.
		 */
		bool contemDuplo(const T &dado) {
			Elemento<T> *tmpElemento = head;

			while (size != 0) {
				if (igual(tmpElemento->getInfo(), dado))
					return true;

				tmpElemento = tmpElemento->getProximo();
				size -= 1;
			}

			if (size != 0)
				delete tmpElemento;

			return false;
		}
コード例 #29
0
ファイル: uva10379.c プロジェクト: gabrielrcp/Treino-Maratona
/* Xn = c/cad * [ (1 / (1 - cad)) - 1] */
void inicializa()
{
  double r;
  int i;

  necessario[0] = 0.0;
  if(igual(cad, 0.0)){
    for(i = 1; i <= voltas; i++)
      necessario[i] = necessario[i-1] + c0;
    return;
  }
  r = 1.0;
  for(i = 1; i <= voltas; i++){
    r /= 1 - cad;
    necessario[i] = c0/cad * (r - 1.0);
  }
}
コード例 #30
0
int ListaElementosGeometricos::posicao(const ElementoGeometrico*& dado) const{
	
		
	Elemento<const ElementoGeometrico*> *atual = head->getProximo();
	Elemento<const ElementoGeometrico*> *proximo;
	for(int i = 0; i < size; i++){
		
		if (igual(*atual->getInfo(), dado))
			return i;
		
		proximo = atual->getProximo();
		atual = proximo;
	}
	
	return -1;
	
}