-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
85 lines (74 loc) · 2.38 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
public class Stack
{
private int maxSize; // Tamaño máximo de la pila
private int top; // Índice del elemento superior
private int[] stackArray; // Arreglo que almacena los elementos de la pila
public Stack(int size)
{
maxSize = size; // Inicializa el tamaño máximo
stackArray = new int[maxSize]; // Crea el arreglo con el tamaño especificado
top = -1; // Inicializa el índice superior en -1 (pila vacía)
}
public bool IsEmpty()
{
return (top == -1); // Comprueba si la pila está vacía (índice superior en -1)
}
public bool IsFull()
{
return (top == maxSize - 1); // Comprueba si la pila está llena (índice superior igual al tamaño máximo - 1)
}
public void Push(int item)
{
if (IsFull())
{
Console.WriteLine("La pila está llena. No se puede insertar más elementos.");
}
else
{
stackArray[++top] = item; // Inserta un elemento en la posición superior y luego incrementa el índice superior
Console.WriteLine($"Se insertó {item} en la pila.");
}
}
public int Pop()
{
if (IsEmpty())
{
Console.WriteLine("La pila está vacía. No se puede realizar la operación Pop.");
return -1;
}
else
{
int poppedItem = stackArray[top--]; // Obtiene el elemento en la posición superior y luego decrementa el índice superior
Console.WriteLine($"Se retiró {poppedItem} de la pila.");
return poppedItem;
}
}
public int Peek()
{
if (IsEmpty())
{
Console.WriteLine("La pila está vacía. No se puede realizar la operación Peek.");
return -1;
}
else
{
return stackArray[top]; // Retorna el elemento en la posición superior sin modificar el índice superior
}
}
}
class Program
{
static void Main()
{
Stack stack = new Stack(5);
stack.Push(1);
stack.Push(2);
stack.Push(3);
stack.Push(4);
int peekedItem = stack.Peek();
Console.WriteLine($"Elemento en la cima de la pila: {peekedItem}");
int poppedItem = stack.Pop();
Console.WriteLine($"Elemento retirado de la pila: {poppedItem}");
}
}