O Binario Bidimencional
Por: Renato1234578 • 4/10/2015 • Projeto de pesquisa • 1.512 Palavras (7 Páginas) • 154 Visualizações
class Lista {
private Celula primeiro;
private Celula ultimo;
//Construtor da classe que cria uma lista sem elementos (somente no cabeca).
public Lista() {
primeiro=new Celula();
ultimo=primeiro;
}
Insere um elemento na primeira posicao da lista.
@param x int elemento a ser inserido.
public void inserirInicio(int x) {
Celula tmp=new Celula(x);
tmp.prox=primeiro.prox;
primeiro.prox=tmp;
if(primeiro==ultimo) {
ultimo=tmp;
}
tmp = null;
}
Insere um elemento na ultima posicao da lista.
@param x int elemento a ser inserido.
public void inserirFim(int x) {
ultimo.prox=newCelula(x);
ultimo = ultimo.prox;
}
Remove um elemento da primeira posicao da lista.
@return resp int elemento a ser removido.
public int removerInicio(){
if (primeiro == ultimo) {
System.out.println("Erro ao remover (vazia)!");
System.exit(1);
}
Celula tmp = primeiro;
primeiro = primeiro.prox;
int resp = primeiro.elemento;
tmp.prox = null;
tmp = null;
return resp;
}
Remove um elemento da ultima posicao da lista.
@return resp int elemento a ser removido.
public int removerFim(){
if (primeiro == ultimo) {
System.out.println("Erro ao remover (vazia)!");
System.exit(1);
}
// Caminhar ate a penultima celula:
Celula i;
for(i = primeiro; i.prox != ultimo; i = i.prox);
int resp = ultimo.elemento;
ultimo = i;
i=ultimo.prox=null;
return resp;
}
Insere um elemento em uma posicao especifica considerando que o
primeiro elemento valido esta na posicao 0.
@param x int elemento a ser inserido.
@param pos int posicao da insercao.
public void inserirMeio(int x, int pos){
int tamanho = tamanho();
if(pos < 0 || pos > tamanho){
System.out.println("Erro ao inserir posicao("+pos+"/tamanho="+tamanho+") invalida!");
}else if (pos == 0){
inserirInicio(x);
}else if (pos == tamanho){
inserirFim(x);
} else {
// Caminhar ate a posicao anterior a insercao
Celula i = primeiro;
for(int j = 0; j < pos; j++, i = i.prox);
Celula tmp = new Celula(x);
tmp.prox = i.prox;
i.prox = tmp;
tmp = i = null;
}
}
Remove um elemento de uma posicao especifica da lista
considerando que o primeiro elemento valido esta na posicao 0.
@param posicao Meio da remocao.
@return resp int elemento a ser removido.
public int removerMeio(int pos){
int resp = -1;
int tamanho = tamanho();
if (primeiro == ultimo){
System.out.println("Erro ao remover (vazia)!");
System.exit(1);
} else if(pos < 0 || pos >= tamanho){
System.out.println("Erro ao remover (posicao"+pos+"/"+tamanho+"invalida!");
System.exit(1);
} else if (pos == 0){
resp = removerInicio();
} else if (pos == tamanho - 1){
resp = removerFim();
} else {
// Caminhar ate a posicao anterior a insercao
Celula i = primeiro;
for(int j = 0; j < pos; j++, i = i.prox);
Celula tmp = i.prox;
resp = tmp.elemento;
i.prox = tmp.prox;
tmp.prox = null;
i = tmp = null;
}
return resp;
}
Mostra os elementos da lista separados por espacos.
public void mostrar() {
System.out.print("[ "); // Comeca a mostrar.
for (Celula i = primeiro.prox; i != null; i = i.prox) {
System.out.print(i.elemento + " ");
}
System.out.println("] "); // Termina de mostrar.
}
Procura um elemento e retorna se ele existe.
@param x Elemento a pesquisar.
@return true
se o elemento existir,
false
em caso contrario.
...