コード例 #1
0
ファイル: ListaEnc.hpp プロジェクト: marcoludd/UFSC-INE5408
void ListaEnc<T>::eliminaDoInicio() {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	Elemento<T>* saiu = cabeca;
	cabeca = saiu->getProximo();
	tamanho--;
	delete saiu;
}
コード例 #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;
}
コード例 #3
0
ファイル: ListaDupla.hpp プロジェクト: marcoludd/UFSC-INE5408
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();
}
コード例 #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();
}
コード例 #5
0
ファイル: ListaDupla.hpp プロジェクト: marcoludd/UFSC-INE5408
void ListaDupla<T>::eliminaDoInicioDuplo() {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	ElementoDuplo<T>* saiu = cabeca;
	cabeca = saiu->getProximo();
	cabeca->setAnterior(0);
	tamanho--;
	delete saiu;
}
コード例 #6
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;
}
コード例 #7
0
ファイル: ListaEnc.hpp プロジェクト: marcoludd/UFSC-INE5408
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();
}
コード例 #8
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();
}
コード例 #9
0
ファイル: ListaEnc.hpp プロジェクト: marcoludd/UFSC-INE5408
T ListaEnc<T>::retiraDoInicio() {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
	Elemento<T>* saiu = cabeca;
	T volta = saiu->getInfo();
	cabeca = saiu->getProximo();
	tamanho--;
	delete saiu;
	return volta;
}
コード例 #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;
}
コード例 #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();
}
コード例 #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;
}
コード例 #13
0
ファイル: ListaDupla.hpp プロジェクト: marcoludd/UFSC-INE5408
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;
}
コード例 #14
0
ファイル: ListaDupla.hpp プロジェクト: marcoludd/UFSC-INE5408
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();
}
コード例 #15
0
ファイル: Lista.hpp プロジェクト: marcoludd/UFSC-INE5408
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;
}
コード例 #16
0
ファイル: FilaEnc.hpp プロジェクト: LucasNeis/Data-Structures
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;
}
コード例 #17
0
ファイル: FilaEnc.hpp プロジェクト: LucasNeis/Data-Structures
T FilaEnc<T>::primeiro() {
	if (filaVazia()) {
		throw ExcecaoListaVazia();
	}
	return this->cabeca->getInfo();
}
コード例 #18
0
T ListaCirc<T>::retiraEspecifico(const T& dado) {
    if (ListaEnc<T>::listaVazia()) {
        throw ExcecaoListaVazia();
    }
  return retiraDaPosicao(posicao(dado) + 1);
}
コード例 #19
0
ファイル: Lista.hpp プロジェクト: marcoludd/UFSC-INE5408
T Lista<T>::retiraEspecifico(T dado) {
	if(listaVazia()) {
		throw ExcecaoListaVazia();
	}
	return retiraDaPosicao(posicao(dado));
}
コード例 #20
0
ファイル: ListaDupla.hpp プロジェクト: marcoludd/UFSC-INE5408
T ListaDupla<T>::retiraEspecificoDuplo(const T& dado) {
	if (listaVazia()) {
		throw ExcecaoListaVazia();
	}
    return this->retiraDaPosicaoDuplo(posicaoDuplo(dado) + 1);
}
コード例 #21
0
ファイル: FilaEnc.hpp プロジェクト: LucasNeis/Data-Structures
T FilaEnc<T>::ultimo() {
    if (filaVazia()) {
		throw ExcecaoListaVazia();
	}
	return fim->getInfo();
}