[Jianzhi 09] Usa dos pilas para implementar la cola

Método 1: Pila auxiliar: tiempo O (n), espacio O (n)

Solución del problema: use dos pilas, una pila se usa para insertar datos, la otra pila se usa para eliminar datos

class CQueue {
    
    
public:
    stack<int> stack1;
    stack<int> stack2;
    CQueue() 
    {
    
    
        while (!stack1.empty())
        {
    
    
            stack1.pop();
        }
        while (!stack2.empty())
        {
    
    
            stack2.pop();
        }
    }
    
    void appendTail(int value) 
    {
    
    
        stack1.push(value);
    }
    
    int deleteHead() 
    {
    
    
        if (stack2.empty())
        {
    
    
            while (!stack1.empty())
            {
    
    
                stack2.push(stack1.top());
                stack1.pop();
            }
        }
        if (stack2.empty())
            return -1;
        int deleteitm = stack2.top();
        stack2.pop();
        return deleteitm;
    }
};

Supongo que te gusta

Origin blog.csdn.net/qq_45691748/article/details/112412035
Recomendado
Clasificación