Diseñe la clase de pila e impleméntela en java

1. Introducción

La pila es una estructura de datos que almacena datos en una forma de último en
entrar , primero en salir. Diseñe una clase de prueba TestStackOfInteger, que usa esta clase para crear una pila, que almacena los 10 enteros 0, 1, 2, ..., 9 y, a continuación, los muestra en orden inverso.
Diseñe una clase de implementación StackOfInteger, los elementos de la pila se almacenan en una matriz denominada elementos. Al crear una pila, también se crea esta matriz. El método de construcción sin parámetros de la clase crea una matriz con una capacidad predeterminada de 16, y el tamaño variable registra el número de elementos en la pila. Para implementar el método push (int value), si size <capaciry, asigne valor a los elementos [size]. Si la búsqueda es completa (es decir, tamaño> = capacidad), cree una nueva matriz con el doble de la capacidad actual, copie el contenido de la matriz actual en la nueva matriz y devuelva el valor de referencia de la nueva matriz a la matriz actual.

2. Clase de implementación

package com.zhuo.base;

public class StackOfInteger {
    
    
    private int[] elements;
    private int size;
    public static final int DEFAULT_CAPACITY = 16;
    public StackOfInteger() {
    
    
        this (DEFAULT_CAPACITY);
    }
    public  StackOfInteger(int capacity) {
    
    
        elements = new int[capacity];
    }
    public void push(int value) {
    
    
        if (size >= elements.length) {
    
    
            int[] temp = new int[elements.length * 2];
            System.arraycopy(elements, 0, temp, 0, elements.length);
            elements = temp;
        }
        elements[size++] = value;
    }
    public int pop() {
    
    
        return elements[--size];
    }
    public int peek() {
    
    
        return elements[size - 1];
    }
    public int getSize() {
    
    
        return size;
    }
    public boolean empty() {
    
    
        return size == 0;
    }
}

Tres. Prueba

package com.zhuo.base;

public class TestStackOfInteger {
    
    
    public static void main(String[] args) {
    
    
        StackOfInteger stack = new StackOfInteger();
        /*入栈操作*/
        for (int i = 0; i < 10; i++) {
    
    
            stack.push(i);
        }
        System.out.println("当前栈的元素个数: " + stack.getSize());
        System.out.println("当前栈顶元素: " + stack.peek());//返回栈顶元素,而不删除栈顶元素
        /*删除栈顶元素并返回它*/
        System.out.print("取栈的所有元素: ");
        while (!stack.empty()) {
    
    
            System.out.print(stack.pop() + " ");
        }
        System.out.println();
        System.out.println("当前的栈的元素个数: " + stack.getSize());
    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_42768634/article/details/113768545
Recomendado
Clasificación