A implementação de uma lista estática e suas operações básicas em Java
Por Clayton Gonçalves dos Santos | 06/06/2012 | TecnologiaPara implementação de uma lista estática será necessário alocação de espaço na memória física(memória principal),onde podemos representar através de arranjo de uma dimensão (vetor[]), onde o acesso ao nodo que serão controlados por índices iniciando no índice 0 , pois a linguagem de programação utilizada para implementação será o Java.Outro aspecto de extrema relevância trata se que as ações que serão executadas em uma lista estática serão apresentadas na forma métodos.Então utilizaremos um vetor de uma demissão do tipo String para inserção dos elementos e também utilizaremos uma variável do tipo int para controlar o tamanho da lista.
public class Lista { private String dados[]; private int tamanho; */ construtor irá requer o tamanho do arranjo neste caso 10 posições e a variável tamanho onde */inicializará o arranjo public Lista(){ dados=new String [10]; tamanho=0; } A verificação do conteúdo de uma lista estática terá três métodos para apresentar seu conteúdo , sendo dois para auxílio das atividades mais complexas que encontramos em uma lista estática e outro com a finalidade auxílio a interface com usuário . Método verificação de lista vazia( método de auxilio)
Metodo de verificação de lista cheia(método de auxilio).
Método de mostrar conteúdo percorre(interface com usuário) Este método será utilizado pelo usuário verificar o conteúdo do arranjo.
Adicionar elemento ao final da lista. Neste exemplo utilizaremos uma representação de um vetor onde cinco posições estão sendo utilizadas (em tonalidade de cinza) e se adicionará mais um nodo (em tom de azul) e outros nodo em branco representará posições não utilizadas .
Assim observamos que as posições preenchidas não se alteram e somente acrescentará a posição em azul ,ainda observamos que o tamanho modelo passa de 5 para 6 devido a inserção do novo nodo.
Adicionar elemento no inicio da lista. Neste exemplo utilizaremos uma representação de um vetor onde seis posições estão sendo utilizadas (em tonalidade de cinza) e será adicionado no inicio mais um elemento (em tom de azul) e outros nodo em branco representará posições não utilizadas . |
Podemos observar que a inserção de um novo elemento adicionará o aumento do arranjo passando do tamanho 6 para o tamanho 7 .Ainda para inserção de um novo elemento será necessário criação de espaços no arranjo e locomoção dos elemento para uma posição a frente com isso podemos inserir no inicio o novo elemento.
public void adicionainicio(String x){ if(!cheia()){ // método verifica se lista está cheia for(int i=tamanho;i>=1;i--) //laço percorre o vetor { dados[i]=dados[i-1]; // aloca o elemento um índice a frente } tamanho++; // adiciona uma casa aumentando o tamanho do arranjo. dados[0]=x; //inserindo o novo elemento } else{ System.out.println("lista cheia não possível adicionar mais elementos");
} } |
Adiciona elemento em qualquer posição da lista
Neste exemplo utilizaremos uma representação de um vetor onde sete posições estão sendo utilizadas (em tonalidade de cinza) e será adicionado na posição 4 um mais um elemento (em tom de azul) e outros nodo em branco representará posições não utilizadas .
Podemos observar na figura 5 que parte do modelo permanece estática e outra parte será necessária alocação para um índice a frente onde o limite para essa alocação será a posição a inserida o novo elemento .
Public void adicionaselect (String x, int y){ //”x” é referente ao elemento e” y “a posição a ser inserida if(cheia()) //verifica se a lista cheia. { System.out.println(“Erro a lista está vazia”); } else { if(y==0) // verifica se a posição encontra se no inicio do da lista { AdicionaInicio(x); // método adiciona no inicio será utilizado. } Else { if(y>tamanho) //caso seja maior que tamanho está for a da lista. { System.out.println(“Erro posição inválida”); } Else { for(int i=tamanho; i>=y;i--) // estrutura de laço decrementa até o até a posição a ser inserida. { dados[i]=dados[i-1]; } dado[y]=x; // inserção de elemento no arranjo tamanho++; // adição de uma casa no arranjo } }}}}
|
Referências bibliográficas
Edelwiss & Galante 2009 Estrutura de Dados Editora Bookman 2009.