Você está na página 1de 2

package estruturasdedados.

trabalho1;

public class ListaRA<Item>{


private Item a[];
private int N;

//Criação de uma lista


public ListaRA() {
a = (Item[]) new Object[2];
N = 0;
}
//Aumenta o tamanho da Lista
private void resize(int max) {
Item temp[];
temp = (Item[]) new Object [max];

for(int i = 0; i < N; i++) {


temp[i] = a[i];
}
a = temp;
}

//Inserção de um nodo
public void inserirEol(Item item) {
if(N == a.length) {
resize(2 * a.length);
}
a[N++] = item;
}

public void InserirBol(Item item) {


//Inserir no início da lista
System.out.println(a.length);
System.out.println(N);
if(N == a.length - 1) {
resize(2 * a.length);
}
//Deslocamento dos outros itens para o final
N++;
for(int i = N; i > 0; i--) {
a[i] = a[i - 1];
}
a[0] = item;
}

public void inserirMol(Item item) {


//Inserir no meio da lista
if(N == a.length) {
resize(2 * a.length);
}
int meio = N / 2;
N++;
for(int i = meio; i < N; i++) {
a[i + 1] = a[i];
}
a[meio] = item;
}

public boolean isEmpty() {


return N == 0;
}

public Item removerEol() {


Item item = a[--N];
if(N > 0 && N == a.length / 4) {
resize(a.length / 2);
}
return item;
}

public Item removerBol() {


return null;
}

public Item removerMol() {


return null;
}

//Acesso a um nodo
public Item acesso(int i) {
if(i >= 0 && i < N) {
return a[i];
}
return null;
}

//Destruição de uma lista


public void destroy() {
a = (Item[]) new Object[2];
N = 0;
}

public void imprime() {


for(int i = 0; i < N; i++) {
System.out.println(a[i]);
}
}

public int getN() {


return N;
}

public static void main(String[] args) {


ListaRA x = new ListaRA();
x.inserirEol("a");
x.inserirEol("b");

x.imprime();
System.out.println(x.getN());
x.InserirBol("c");
x.InserirBol("d");

x.imprime();
System.out.println(x.getN());

}
}

Você também pode gostar