p5.js | Empuje la operación en la pila

¿Qué es Pila?  
La pila es una estructura de datos lineal como una array en la que solo se puede acceder al último elemento insertado. Esta estructura de datos funciona sobre el principio Last In First Out (LIFO). Es muy rápido ya que solo tiene que acceder al último elemento agregado, por lo que requiere un tiempo constante para hacerlo con una complejidad O(1)
Las pilas deben usarse sobre arrays cuando necesitamos trabajar con datos en el formulario LIFO . La operación de empuje en la pila se usa para agregar un elemento en la pila. Si la pila está llena, se dice que hay una condición de desbordamiento. 
 

stack

Esqueleto básico de la pila: el siguiente ejemplo se ejecuta con el comando «$node skeleton.js» para obtener el esqueleto básico de la pila. 
 

javascript

// Define Stack function
function Stack(array) {
    this.array = [];
    if (array) this.array = array;
}
 
// Add Get Buffer property to object
// constructor which slices the array
Stack.prototype.getBuffer = function() {
    return this.array.slice();
}
 
// Add isEmpty properties to object constructor
// which returns the length of the array
Stack.prototype.isEmpty = function() {
    return this.array.length == 0;
}
 
// Instance of the stack class
var stack1 = new Stack(); // Stack { array: [] }
 
console.log(stack1);

Ejemplo: Este ejemplo describe la operación de inserción en la pila. 
 

javascript

<!DOCTYPE html>
<html>
     
<head>
    <title>Stack push operation</title>
     
    <meta charset="UTF-8">
     
    <script src=
"https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.8.0/p5.min.js"
    type="text/javascript"></script>
 
    <style>
        body {
            padding: 0;
            margin: 0;
        }
        canvas {
            vertical-align: top;
        }
    </style>
</head>   
 
<title>
    <script>
 
        // Define Stack function
        function Stack(array) {
            this.array = [];
            if (array) this.array = array;
        }
         
        // Add Get Buffer property to object
        // constructor which slices the array
        Stack.prototype.getBuffer = function() {
            return this.array.slice();
        }
         
        // Add isEmpty properties to object constructor
        // which returns the length of the array
        Stack.prototype.isEmpty = function() {
            return this.array.length == 0;
        }
         
        // Instance of the stack class
        var stack1 = new Stack(); //Stack { array: [] }
         
        // Add Push property to object constructor which
        // push elements to the array
        Stack.prototype.push = function(value) {
            this.array.push(value);
        }
         
        function setup() {
         
            // Create Canvas of size display width * 300
            createCanvas(displayWidth, 300);
        }
         
        function draw() {
         
            // Set background color
            background("grey");
             
            // Set stroke weight
            strokeWeight(3);
             
            // Set stroke color
            stroke('black');
            line(10, 45, 90, 45);
            rect(10, 30, 40, 30);
            noStroke();
            text("TOP", 20, 50);
         
            // Display stack
            for(var i = stack1['array'].length-1; i >= 0; i--) {
                var p = 10;
                translate(70, 0);
                strokeWeight(3);
                stroke('black');
                line(10+p, 45, p+80, 45);
                noStroke();
                rect(10+p, 30, 40+p, 30);
                text(stack1['array'][i], 40, 50);
                p +=10;
            }
        }
         
        // Call to push operation
        stack1.push(1);
        stack1.push(2);
        stack1.push(3);
        stack1.push(19);
        stack1.push(11);
        stack1.push(12);
    </script>
</body>
 
</html>                                   

Producción: 
 

Después de empujar ’14’ llamando a la función stack1.push(14) a la parte superior de la pila. 
 

Publicación traducida automáticamente

Artículo escrito por sarthak_ishu11 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *