pila de paquetes; / ** * @autor Eightn0 * @create 2021-03-15 15:00 * Realizar pila con lista vinculada dinámica * / / * Declarar nodo * / class Node { int datos; Nodo siguiente; Nodo público (datos int) { this.data = datos; this.next = null; } } / * Use una lista vinculada para implementar la pila y los métodos de diseño para empujar, hacer estallar y juzgar si la pila está vacía * / class StackByLink { public Node front; // Puntero al final de la pila public Node rear; // Puntero a la parte superior de la pila / * Determinar si la pila está vacía: isEmpty () * / public boolean isEmpty () { return front == null; // Juzgar si la pila está vacía por si el puntero inferior está vacío } / * Imprimir contenido de la pila: output_of_stack * / public void output_of_stack () { Node current = front; // Empezar desde el puntero inferior while (current! = null) {// La condición para saltar fuera del ciclo: la impresión ha terminado System.out.println ("[" + datos.actual + "]"); current = current.next; // El puntero se mueve hacia abajo, imprime el siguiente } System.out.println (); // Por estética } / * En la pila, agregue datos en la parte superior: inserte * / inserción de vacío público (datos int) { Node newNode = new Node (datos); // Cargar los datos que se agregarán al nodo if (this.isEmpty ()) {// Si la pila actual está vacía, entonces los punteros superior e inferior están en el nuevo nodo front = newNode; trasero = newNode; } else {// La pila actual no está vacía, luego agregue el nodo desde la parte superior, haga el punto superior original al nuevo nodo y luego mueva el puntero superior al nuevo nodo rear.next = newNode; trasero = newNode; } } / * Extraer de la pila-eliminar datos en la parte superior: pop * / pop vacío público () { Nodo nuevo Nodo; if (isEmpty ()) {// La pila vacía no necesita eliminar datos System.out.println ("Pila actualmente vacía"); regreso; } newNode = front; // Solo hay un dato en la pila if (newNode == trasero) { frente = nulo; trasero = nulo; System.out.println ("Pila actualmente vacía"); // Estará vacío si se borra } else {// Situación más general while (newNode.next! = rear) { newNode = newNode.next; } newNode.next = rear.next; trasero = newNode; } } }
Realización de lista enlazada dinámica de pila
Supongo que te gusta
Origin blog.csdn.net/vivian233/article/details/114836280
Recomendado
Clasificación