0 votos
por (180 puntos) en Java
Hola que tal me piden que realice lo siguiente pero soy novato y aun no entiendo muy bien, se los agradeceria si me pudieran ayudar Saludos...

Escribir un programa que realice las operaciones básicas sobre una lista sencillamente enlazada:

-Creación de la lista.

-Comprobación de si una lista esta vacía.

-Insertar un nodo en la posición i (i es una posición que el usuario especificará como parámetro de entrada al estar ejecutando el programa).

-Eliminar un nodo en la posición i.

-Buscar un nodo en la posición i.

SUPONGAN QUE:

-El primer nodo de la lista ocupa la posición 0.

OBSERVEN QUE:

El usuario puede introducir como posición i un número negativo o un número mayor al número de nodos con los que cuenta actualmente su lista. Por lo tanto, vean también qué hara su programa al respecto.

VARIANTE DEL PROGRAMA:

Su programa puede buscar por dato en vez de buscar por posición. Decidan qué opción les parece mejor y desarrollen su programa bajo un solo criterio.


6 Respuestas

0 votos
por (420 puntos)
yo soy novato pero creo que si buscas por i sería algo como decirle que lo lea como una matriz(no setoy seguro) pero si se puede sería lo más fácil porque con matrices puedes hacer que cada fila sea un vector X y cada columna serían las palabras o números separados por coma.

int[ ][ ]seguridad=

{0,0,0,0,3,0,0},

{0,0,6,0,0,0,0},

{0,0,0,5,0,0,0},

{0,0,0,0,9,0,0};

sería esto de arriba, o puedes hacerlo vacío int[ ][ ]seguridad=new int[4][7];

donde los valores(he puesto numeros por hacerlo más corto) serían:

seguridad[1][5]=3;   //recuerda que si haces una matriz tiene que contener datos del

seguridad[2][3]=6;   //mismo tipo. int, String, Button, Boolean

seguridad[3][4]=5;

seguridad[4][5]=9;

Bueno sólo es una idea y creo que se podría aplicar a lo que quieres hacer siempre que los datos se alamacenen separados por comas "," y usando DataInputStream, Oracle desaconseja usar readline aunque no sé porqué..

Ya no me enrollo más y espero que tengas suerte :)

yo estoy haciendo el buscaminas para enterarme bien del tema de matrices que no veas como lía XD


0 votos
por
supongo q deberias usar java.util para usar listas, poedes usar List<TipoObjeto> ArrayList o LinkedList, al ser estas dinamicas te ayudaran mas con los nodos q con una matriz, ademas con una matriz se juega con dos posiciones, no con una, como dice el problema, y la libreria de List tiene metodos sencillos de busqueda y validacion de nodos existentes o no en la lista


0 votos
por (40 puntos)
"pero soy novato y aun no entiendo muy bien" o eres perezoso y no quieres hacer tu tarea??en internet hay miles de tutoriales.


0 votos
por (180 puntos)
No para nada soy perezoso tengo un codigo que hice ayer por la noche quiero darme una idea para comparar mi resultado con el de ustedes

Gracias a las personas que se dedican un rato para contestar nuestras dudas..

Saludos


0 votos
por (320 puntos)
como dice '00001111' por ahi arriba deberias usar las listas del java.util, si ya tienes un codigo hecho pegalo aqui para que lo veamos y lo podasmo corregir si es necesario, asi nos ahorras tener que hacerlo nosotros y tu practicas un poco ;)


0 votos
por (180 puntos)
Haber aqui les dejo el codigo y por favor vumple con lo mencionado arriba de la ayuda???

Gracias


import javax.swing.JOptionPane;

public class ListaS {
    private Nodo primero;
    private Nodo ultimo;
    private int tamano;

    public ListaS() {
        this.primero = null;
        this.ultimo = null;
        this.tamano = 0;
    }

//Metodo utilizado para denotar que la lista se encuentra vacia.
    public boolean siVacio() {
        return (this.primero == null);
    }

//Metodo para agregar al final de la lista.
    public ListaS addLast(int dato) {
        if(siVacio()) {
            Nodo nuevo = new Nodo(dato);
            primero = nuevo;
            ultimo = nuevo;
            nuevo.nodoDer = nuevo;
        }
        else {
            Nodo nuevo = new Nodo(dato);
            nuevo.nodoDer = null;
            ultimo.nodoDer = nuevo;
            ultimo = nuevo;
        }
        this.tamano++;
        return this;
    }

//Metodo para borrar al final de la lista.
    public Nodo deleteLast() {
        Nodo eliminar = null;
        if(siVacio()) {
            JOptionPane.showMessageDialog(null, "La lista se encuentra vacia");
            return null;
        }
        if(primero == ultimo) {
            primero = null;
            ultimo = null;
        }
        else {
            Nodo actual = primero;
            while(actual.nodoDer != ultimo) {
                actual = actual.nodoDer;
            }
            eliminar = actual.nodoDer;
            actual.nodoDer = null;

            ultimo = actual;
        }
        this.tamano--;
        return eliminar;
    }

//Metodo que imprime el tamaño de la lista.
    public void tamano() {
        JOptionPane.showMessageDialog(null, "El tamaño es:n " + this.tamano);
    }

//Metodo que imprime la lista y los valores ingresados.
    public void imprimir() {
        if(tamano != 0) {
            Nodo temp = primero;
            String str = "";
            for(int i = 0; i < this.tamano; i++) {
                str = str + temp.dato + "n";
                temp = temp.nodoDer;
            }
            JOptionPane.showMessageDialog(null, str);
        }
    }
}

Preguntas relacionadas

0 votos
2 respuestas
preguntado por sanabria2319 (340 puntos) Ene 28, 2016 en Java
0 votos
1 respuesta
preguntado por sanabria2319 (340 puntos) Ene 28, 2016 en Java
0 votos
0 respuestas
preguntado por roxas (60 puntos) Nov 16, 2020 en Java
0 votos
0 respuestas
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...