Listas Lineares

De Aulas

Voltar para Estrutura de Dados

Lista encadeada simples.png

Classe Elemento

1public class Elemento {
2	public String nome;
3	public Elemento proximo;
4	
5	public Elemento(String n) {
6		nome = n;
7		proximo = null;
8	}
9}

Classe ListaSimples

 1public class ListaSimples {
 2	Elemento inicio;
 3
 4	public ListaSimples() {
 5		inicio = null;
 6	}
 7
 8	public void inserirNoInicio(Elemento e) {
 9		if (inicio == null) {
10			inicio = e;
11		} else {
12			e.proximo = inicio;
13			inicio = e;
14		}
15	}
16
17	public Elemento tirarUltimo() {
18		Elemento ponteiro = inicio;
19		if (inicio != null) {
20			Elemento anterior = null;
21			while (ponteiro.proximo != null) {
22				anterior = ponteiro;
23				ponteiro = ponteiro.proximo;
24			}
25			if (anterior == null) {
26				inicio = null;
27			} else {
28				anterior.proximo = null;
29			}
30		}
31		return ponteiro;
32	}
33
34	public String toString() {
35		String out = "Lista: ";
36		Elemento ponteiro = inicio;
37		while (ponteiro != null) {
38			out += ponteiro.nome + " -> ";
39			ponteiro = ponteiro.proximo;
40		}
41		return out;
42	}
43
44	public static void main(String[] args) {
45		ListaSimples lista = new ListaSimples();
46		Elemento e;
47
48		e = new Elemento("A");
49		lista.inserirNoInicio(e);
50		System.out.println(lista);
51		
52		e = new Elemento("B");
53		lista.inserirNoInicio(e);
54		System.out.println(lista);
55		
56		e = new Elemento("C");
57 		lista.inserirNoInicio(e);
58		System.out.println(lista);
59
60		do {
61			e = lista.tirarUltimo();
62			if (e != null) {
63				System.out.println("Retirado: " + e.nome);
64				System.out.println(lista);
65			}
66		} while (e != null);
67	}
68}

Resultado da Execução

Lista: A -> 
Lista: B -> A -> 
Lista: C -> B -> A -> 
Retirado: A
Lista: C -> B -> 
Retirado: B
Lista: C -> 
Retirado: C
Lista: