Esempio n. 1
0
void ListaEnc<T>::eliminaDoInicio() {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	Elemento<T>* saiu = cabeca;
	cabeca = saiu->getProximo();
	tamanho--;
	delete saiu;
}
Esempio n. 2
0
void ListaCirc<T>::eliminaDoInicio() {
  if (ListaEnc<T>::listaVazia()) {
    throw ExcecaoListaVazia();
  }
  Elemento<T>* saiu = this->cabeca->getProximo();
  this->cabeca->setProximo(saiu->getProximo());
  this->tamanho--;
  delete saiu;
}
Esempio n. 3
0
T ListaDupla<T>::mostra(int pos) {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	ElementoDuplo<T>* mostra = cabeca;
	for (int i = 0; i < tamanho - 1; i++) {
		mostra = mostra->getProximo();
	}
	return mostra->getInfo();
}
Esempio n. 4
0
T ListaCirc<T>::mostra(int pos) {
  if (ListaEnc<T>::listaVazia()) {
    throw ExcecaoListaVazia();
  }
  Elemento<T>* atual = this->cabeca->getProximo();
  for (int i = 0; i < pos; i++) {
    atual = atual->getProximo();
  }
  return atual->getInfo();
}
Esempio n. 5
0
void ListaDupla<T>::eliminaDoInicioDuplo() {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	ElementoDuplo<T>* saiu = cabeca;
	cabeca = saiu->getProximo();
	cabeca->setAnterior(0);
	tamanho--;
	delete saiu;
}
Esempio n. 6
0
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;
}
Esempio n. 7
0
T* ListaEnc<T>::posicaoMem(const T& dado) const {
    if (listaVazia()) {
        throw ExcecaoListaVazia();
    }
    int posicao = posicao(dado);
    Elemento<T>* atual = cabeca;
    for (int i = 0; i < posicao; i++) {
        atual = atual->getProximo();
    }
    return atual->getInfo();
}
Esempio n. 8
0
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();
}
Esempio n. 9
0
T ListaEnc<T>::retiraDoInicio() {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	Elemento<T>* saiu = cabeca;
	T volta = saiu->getInfo();
	cabeca = saiu->getProximo();
	tamanho--;
	delete saiu;
	return volta;
}
Esempio n. 10
0
T* ListaCirc<T>::posicaoMem(const T& dado) const {
    if (ListaEnc<T>::listaVazia()) {
        throw ExcecaoListaVazia();
    }
    int posicao = this->posicao(dado);
    Elemento<T>* atual = this->cabeca->getProximo();
    for (int i = 1; i < posicao; i++) {
        atual = atual->getProximo();
    }
    T volta = atual->getInfo();
    T* retorno = &volta;
    return retorno;
}
Esempio n. 11
0
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();
}
Esempio n. 12
0
bool ListaCirc<T>::contem(const T& dado) {
  if (ListaEnc<T>::listaVazia()) {
    throw ExcecaoListaVazia();
  }
  Elemento<T>* atual = this->cabeca->getProximo();
  for (int i = 0; i < this->tamanho; i++) {
    if (ListaEnc<T>::igual(dado, atual->getInfo())) {
      return true;
    }
    atual = atual->getProximo();
  }
    return false;
}
Esempio n. 13
0
bool ListaDupla<T>::contemDuplo(const T& dado) {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	ElementoDuplo<T>* atual = cabeca;
	for (int i = 0; i < tamanho; i++) {
		if (igual(dado, atual->getInfo())) {
			return true;
		}
		atual = atual->getProximo();
	}
    return false;
}
Esempio n. 14
0
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();
}
Esempio n. 15
0
T Lista<T>::retiraDaPosicao(int posicao) {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	if (posicaoInvalida(posicao)) {
		throw ExcecaoPosicao();
	}
	ultimo--;
	T dado = lista[posicao];
	for (int i = posicao; i <= ultimo; i++) {
		lista[posicao] = lista[posicao + 1];
	}
	return dado;
}
Esempio n. 16
0
T FilaEnc<T>::retira() {
	if (filaVazia()) {
		throw ExcecaoListaVazia();
	}
	Elemento<T>* sai = this->cabeca;
	T volta = sai->getInfo();
	this->cabeca = sai->getProximo();
	if(this->tamanho == 1) {
		fim = 0;
	}
	this->tamanho--;
	delete sai;
	return volta;
}
Esempio n. 17
0
T FilaEnc<T>::primeiro() {
	if (filaVazia()) {
		throw ExcecaoListaVazia();
	}
	return this->cabeca->getInfo();
}
Esempio n. 18
0
T ListaCirc<T>::retiraEspecifico(const T& dado) {
    if (ListaEnc<T>::listaVazia()) {
        throw ExcecaoListaVazia();
    }
  return retiraDaPosicao(posicao(dado) + 1);
}
Esempio n. 19
0
T Lista<T>::retiraEspecifico(T dado) {
	if(listaVazia()) {
		throw ExcecaoListaVazia();
	}
	return retiraDaPosicao(posicao(dado));
}
Esempio n. 20
0
T ListaDupla<T>::retiraEspecificoDuplo(const T& dado) {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
    return this->retiraDaPosicaoDuplo(posicaoDuplo(dado) + 1);
}
Esempio n. 21
0
T FilaEnc<T>::ultimo() {
    if (filaVazia()) {
		throw ExcecaoListaVazia();
	}
	return fim->getInfo();
}