【Preguntas de pincel de PTA】Lista de enlaces únicos

Por favor agregue la descripción de la imagen
Tarjeta de visita personal:

bloguero: Alcohólicos ᝰ.
Perfil personal: Disfrute del vino y luche por un futuro con una bebida.
columna: Ejercicios y análisis de PTA
introducir: Grabé el tema de las preguntas de práctica del blogger en pta

Por favor agregue la descripción de la imagen

una,Operaciones básicas de lista enlazada simple

1. Temas

Escriba un programa para implementar algoritmos básicos, como insertar y eliminar nodos en una lista enlazada individualmente. Dada una lista enlazada individualmente y una secuencia de operaciones para insertar y eliminar nodos, genere la lista enlazada después de realizar las operaciones anteriores. El valor del campo de datos de la lista enlazada individualmente es un número entero.

Formato de entrada:
la primera línea de entrada es un número entero positivo n, que representa la longitud de la lista enlazada individual actual; la segunda línea es un número entero separado por n espacios, que es el valor del campo de datos de los n elementos de la lista enlazada. La tercera línea es un entero positivo m, que representa el número de operaciones aplicadas a la lista enlazada; las siguientes m líneas, cada línea representa una operación, que son 2 o 3 enteros en el formato de 0 kd o 1 k. 0 kd significa insertar un nodo cuyo valor de campo de datos es d después del k-ésimo nodo de la lista enlazada.Si k=0, significa que se inserta el encabezado. 1 k significa eliminar el k-ésimo nodo en la lista enlazada, y k no puede ser 0 en este momento. Nota: Si la secuencia de operaciones contiene operaciones no válidas (como eliminar el 8º nodo, eliminar el 0º nodo, etc. en una lista enlazada de longitud 5), la operación se ignorará. n y m no superan 100000.

Formato de salida:
la salida es una fila de enteros, que representa la lista enlazada después de implementar las m operaciones anteriores, con un espacio después de cada entero. Los datos de entrada aseguran que la lista de resultados no esté vacía.

Muestra de entrada:

5
1 2 3 4 5
5
0 2 8
0 9 6
0 0 7
1 0
1 6

Salida de muestra:

7 1 2 8 3 5

Código Límite de longitud 16 KB
Límite de tiempo 5000 ms
Límite de memoria 256 MB

2. Código

import java.util.LinkedList;
import java.util.Scanner;


public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        LinkedList<Integer> list = new LinkedList<>();
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
    
    
            list.add(sc.nextInt());
        }
        int m = sc.nextInt();
        for (int i = 0; i < m; i++) {
    
    
            int num = sc.nextInt();
            if (num == 0){
    
    
                int k = sc.nextInt();
                int d = sc.nextInt();
                if (k <= list.size()){
    
    
                    list.add(k, d);
                }
            }else if (num == 1){
    
    
                int k = sc.nextInt();
                if (k <= list.size() && k != 0){
    
    
                    list.remove(k-1);
                }
            }
        }
        for (Integer node : list) {
    
    
            System.out.print(node + " ");
        }
    }
}

dos,Aplicación básica de la lista de enlaces simples: inversión de la lista de enlaces simples

1. Temas

Para programar un sistema simple de gestión de la información de los estudiantes, use funciones autodefinidas para implementar los siguientes pasos:
(1) Cree una lista enlazada de acuerdo con la información de entrada y genere toda la información de los nodos. La información de cada estudiante incluye el nombre y el grado;
(2) Invierta la lista enlazada individualmente creada en el paso anterior y genere toda la información del nodo.

Formato de entrada:
Cree una lista enlazada individualmente basada en la información de varios estudiantes de entrada. Cada fila representa la información de un estudiante, terminando con una calificación de -1 como entrada.
Formato de salida:
la información de cada estudiante ocupa una línea, el nombre y la calificación están separados por un espacio y la calificación se mantiene con un decimal.
Crear una lista vinculada y salida más información de solicitud:
Inversión original y salida más información de solicitud: Invertida

Entrada de muestra:
aquí hay un conjunto de entradas. P.ej:

Wang 87,3
Wang 60,1
Wang 89,5
Li 93,2
Fu 87,5
Wang 78,6
Cheng 89,1
Tang 71,9
Wang 63,1
Fang 81,9
tt -1

Salida de muestra:
Aquí se proporciona la salida correspondiente. P.ej:

Original:
Wang 87,3
Wang 60,1
Wang 89,5
Li 93,2
Fu 87,5
Wang 78,6
Cheng 89,1
Tang 71,9
Wang 63,1
Fang 81,9

Invertida:
Fang 81.9
Wang 63.1
Tang 71.9
Cheng 89.1
Wang 78.6
Fu 87.5
Li 93.2
Wang 89.5
Wang 60.1
Wang 87.3

Código Límite de longitud 16 KB
Límite de tiempo 400 ms
Límite de memoria 64 MB

2. Código

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        List<String> stu = new ArrayList<>();
        List<Double> sco = new ArrayList<>();
        int i = 0;
        double num = 0;
        while(num != -1){
    
    
            stu.add(sc.next());
            sco.add(sc.nextDouble());
            num = sco.get(i);
            i++;
        };
        System.out.println("Original:");
        for (int j = 0; j < stu.size() - 1; j++) {
    
    
            System.out.println(stu.get(j) + " " + sco.get(j));
            if (j == stu.size() - 2){
    
    
                System.out.println();
            }
        }
        System.out.println("Reversed:");
        for (int j = stu.size() - 2; j >= 0; j--) {
    
    
            System.out.println(stu.get(j) + " " + sco.get(j));
        }
    }
}

Supongo que te gusta

Origin blog.csdn.net/m0_65144570/article/details/127097662
Recomendado
Clasificación