打印java列表

打印java列表,java,list,printing,Java,List,Printing,所以我这里有一个小问题,我试着从右到左和从左到右打印一个列表,这个代码可以从右到左精细打印,但从左到右不,请提供任何帮助 我的代码: package listas; import java.util.Scanner; class nodo { int info; nodo ligader; nodo ligaizq; } class Listas { static nodo F = null; static nodo Q = null;

所以我这里有一个小问题,我试着从右到左和从左到右打印一个列表,这个代码可以从右到左精细打印,但从左到右不,请提供任何帮助

我的代码:

package listas;

import java.util.Scanner;


class nodo {

    int info;

    nodo ligader;
    nodo ligaizq;
}

class Listas {

    static nodo F = null;
    static nodo Q = null;
    static nodo P = null;
    static nodo x = null;
    static nodo T = null;

    public static void main(String args[]) {
        Scanner y = new Scanner(System.in);
        int m = 0;

        do {
            try {
                System.out.println("Menu");
                System.out.println("1.  Crea Inicio");             
                System.out.println("2. Insertar antes de referencia ");
                System.out.println("3.  Mostrar");
                System.out.println("4. Salir");
                System.out.println("Opcion:");
                m = Integer.valueOf(y.next());
            } catch (NumberFormatException e) {
                System.out.print("");
            }

            try {
                switch (m) {
                    case 1:
                        creaininodo();
                        System.out.println("Termina Programa que Crea Inicio de Lista");
                        break;
                    case 2:
                        InsertarAntes();
                        break;
                    case 3:
                        Mostrar();
                        break;
                    case 4:
                        System.exit(0);
                        break;
                    default:
                        System.out.println("La opcion que escogio no se encuentra,favor de escoger otra.");
                        break;

                }

            } catch (NumberFormatException e) {
                System.out.println("Datos introducidos erroneos.");
            }
        } while (m != 4);
    }

    public static void creaininodo() {

        Scanner y = new Scanner(System.in);
        int opc = 1;
        int dato;
        if (P == null) {
            P = new nodo();
            System.out.println("Dame Dato: ");
            dato = Integer.valueOf(y.next());
            P.info = dato;
            P.ligaizq = null;
            P.ligader = null;
            F = P;
        }

        do {
            Q = new nodo();
            System.out.println("Dame Dato: ");
            dato = Integer.valueOf(y.next());
            Q.info = dato;
            Q.ligader = P;
            Q.ligaizq = null;
            P = Q;

            System.out.println("Otro nodo 1(SI) 2 (NO)");
            opc = Integer.valueOf(y.next());
        } while (opc != 2);

    }

    public static void InsertarAntes() {
        Scanner sc = new Scanner(System.in);
        int ref;
        int dato;
        System.out.println("Inserte un valor de referencia: ");
        ref = Integer.valueOf(sc.next());
        Q = P;
        boolean band = false;

        while ((Q.info != ref) && (band == false)) {
            if (Q.ligader != null) {
               T=Q;
                Q = Q.ligader;

            } else {
                band = true;
            }
        }

        if (band == true) {
            System.out.println("El elemento no fue enconntrado");
        } else {
            x = new nodo();
            System.out.println("Inserte el nuevo valor: ");
            dato = sc.nextInt();
            x.info = dato;
            x.ligader = Q;
            T.ligader=x;
            Q.ligaizq = x;
            x.ligaizq = T;
            if (P == Q) {
                P = x;
            }
        }

    }



    public static void Mostrar() {

        System.out.println("La Lista Creada es: ");
        System.out.println("Campo Informacion de derecha a izquierda:");
        for (nodo i = P; i != null; i = i.ligader) {
            System.out.print(" -" + i.info + "- ");
        }
        System.out.println(" ");
        System.out.println("Campo Informacion de izquierda a derecha:");
        for (nodo i = F; i != null; i = i.ligader) {
            System.out.print(" -" + i.info + "- ");

        }
        System.out.println(" ");
    }
}
基本上,这个程序的工作原理是在案例1和案例2中为列表提供一些数字(在案例2中,您只是选择了一个您之前在案例2中添加的参考号,因此您将该数字插入到参考号之前的列表中),而在案例3中,问题是代码从右向左打印,而不是从左向右打印

例如,我们选择案例1并添加3个数字3、6和5,然后选择案例3并打印:

La Lista Creada es: 德雷查·伊兹基尔达信息中心:(从右到左(精细)) -3--6--5-
伊兹基尔达·德雷查信息中心:(从左到右只有一个号码) -5-


对不起,我的英语不好,我感谢任何帮助,谢谢

好吧,我不完全确定利加德和利加伊兹克是什么意思。但是假设您想要实现一个双链接列表,我希望它们指示列表中的上一个和下一个节点

您需要在输入法
creaininodo()
中更改以下内容:

然后修改从左到右的输出方法,以实际使用到上一个节点的链接进行遍历:

    for (nodo i = F; i != null; i = i.ligaizq) { // using i.ligaizq!
        System.out.print(" -" + i.info + "- ");
    }

如果此答案帮助您解决了问题,请将其标记为已接受,以便结束问题。
    for (nodo i = F; i != null; i = i.ligaizq) { // using i.ligaizq!
        System.out.print(" -" + i.info + "- ");
    }