Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Representa la implementación parcial de una lista enlazada simple en la que
- * se tiene acceso directo al primer elemento y también al último.
- *
- */
- package autoevaluacion6;
- public class ListaLink {
- //Atributos ListaLink
- private Nodo primero;
- private Nodo ultimo;
- private int numElementos;
- /**
- * Constructor que inicializa los atributos al valor por defecto
- */
- public ListaLink() {
- primero = null;
- ultimo = null;
- numElementos = 0;
- }
- /**
- * La clase Nodo está anidada y representa la estructura de un elemento de
- * la lista enlazada protección de copia PMN simple.
- */
- class Nodo {
- //Atributos
- Object dato;
- Nodo siguiente;
- /**
- * Constructor que inicializa atributos al valor por defecto.
- */
- public Nodo() {
- dato = null;
- siguiente = null;
- }
- } //class Nodo
- //La clase add
- public void add(Object objeto, int posicion) {
- Nodo elemento = new Nodo();
- elemento.dato = objeto;
- if(objeto != null) {
- if(numElementos == 0) {
- primero = elemento;
- numElementos++;
- }else if (posicion < numElementos){
- elemento.siguiente = comprobarAnterior(posicion).siguiente;
- comprobarAnterior(posicion).siguiente = elemento;
- numElementos++;
- }else {
- System.out.println("ERROR: No se pueden añadir a posiciones superiores a la"
- + "del ultimo nodo si desea alargarlo use addAmpliar");
- }
- }else {
- System.out.println("No se permite añadir datos nulos");
- }
- }
- public void add(Object objeto){
- Nodo elemento = new Nodo();
- elemento.dato = objeto;
- if(numElementos == 0) {
- primero = elemento;
- ultimo = elemento;
- numElementos++;
- }else {
- numElementos++;
- ultimo.siguiente = elemento;
- ultimo = elemento;
- }
- }
- public Nodo comprobarAnterior(int i) {
- Nodo nodoAux = new Nodo();
- nodoAux.siguiente = primero;
- for(int j = 0; j < i; j++) {
- if(j + 1 == i){
- return nodoAux;
- }
- nodoAux = nodoAux.siguiente;
- }
- return nodoAux;
- }
- // Métodos de comprobacion
- public void llenarListaLink(ListaLink lista) {
- Nodo nodo = new Nodo();
- nodo.siguiente = primero;
- for(int i = 0; i < 11; i++) {
- lista.add("N" + i);
- }
- }
- public void imprimirListaLink(ListaLink lista) {
- Nodo nodo = new Nodo();
- nodo = primero;
- for(int i = 0; i < lista.numElementos; i++) {
- System.out.println(nodo.dato);
- nodo = nodo.siguiente;
- }
- }
- public static void main(String[] Args) {
- ListaLink lista = new ListaLink();
- lista.llenarListaLink(lista);
- lista.add(23, 7);
- lista.add(1231, 5);
- lista.add('a', 6);
- System.out.println(lista.numElementos + "\n");
- lista.imprimirListaLink(lista);
- }
- } //class listaLink
Add Comment
Please, Sign In to add comment