Buscar

prova de aed

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 3 páginas

Prévia do material em texto

Lista de exercícios
Jean Carlos Morais Amorim
class Lista {
private No primeiro, ultimo;
private int tamanho;
class No {
int elemento;
No proximo;
}
Lista() {
tamanho = 0;
}
void insereInicio(int elemento) {
No novoNo = new No();
novoNo.elemento = elemento;
novoNo.proximo = primeiro;
primeiro = novoNo;
if(tamanho == 0) {
ultimo = novoNo;
}
tamanho++;
}
void insereFinal(int elemento) {
if(tamanho == 0) {
insereInicio(elemento);
} else {
No novoNo = new No();
novoNo.elemento = elemento;
novoNo.proximo = null;
ultimo.proximo = novoNo;
ultimo = novoNo;
tamanho++;
}
}
void insereNaPosicao(int posicao, int elemento) {
if (tamanho == 0 || posicao == 0) {
insereInicio(elemento);
} else if(posicao == tamanho) {
insereFinal(elemento);
} else {
No noAnterior = buscarNoNaPosicao(posicao - 1);
No noNaPosicao = buscarNoNaPosicao(posicao);
No novoNo = new No();
novoNo.elemento = elemento;
novoNo.proximo = noNaPosicao;
noAnterior.proximo = novoNo;
tamanho++;
}
}
No removeInicio() {
if(tamanho == 0) {
return null;
}
No noRemovido = primeiro;
primeiro = primeiro.proximo;
tamanho--;
if(tamanho == 0) {
ultimo = null;
}
return noRemovido;
}
No removeFinal() {
if(tamanho == 0) {
return null;
}
if(tamanho == 1) {
return removeInicio();
}
No noNaPosicaoAnterior = buscarNoNaPosicao(tamanho - 2);
No noRemovido = noNaPosicaoAnterior.proximo;
noNaPosicaoAnterior.proximo = null;
ultimo = noNaPosicaoAnterior;
tamanho--;
return noRemovido;
}
No buscarNoNaPosicao(int posicao) {
if(!(posicao >= 0 && posicao < tamanho)) {
return null;
}
No atual = primeiro;
for (int i = 0; i < posicao; i++) {
atual = atual.proximo;
}
return atual;
}
void imprime() {
if(tamanho == 0) {
System.out.println("[]");
}
System.out.print("[");
No atual = primeiro;
do {
System.out.print(atual.elemento);
if(atual.proximo != null) {
System.out.print(", ");
}
atual = atual.proximo;
}while(atual != null);
System.out.println("]");
}
}
class Main {
static Lista lista = new Lista();
public static void main(String[] args) {
System.out.println("Insere 10 elementos na lista");
for(int i = 0; i < 10; i++) {
lista.insereFinal(i);
}
lista.imprime();
System.out.println();
System.out.println("Remove os 3 primeiros e adiciona no final");
for(int i = 0; i < 3; i++) {
int removido = lista.removeInicio().elemento;
lista.insereFinal(removido);
}
lista.imprime();
System.out.println();
System.out.println("Remove o primeiro e o último");
lista.removeInicio();
lista.removeFinal();
lista.imprime();
System.out.println();
System.out.println("Inserir dois elementos nas posições 4 e 5 da
lista");
lista.insereNaPosicao(4, 10);
lista.insereNaPosicao(5, 11);
lista.imprime();
System.out.println();
}
}

Outros materiais