Programa C# para implementar la pila

Programa C# para implementar la pila

En este artículo, escribiremos un programa C# para implementar Stack con un ejemplo

La pila es una de las estructuras de datos más utilizadas. Definimos una pila como una lista de elementos a los que solo se puede acceder desde el final de la lista, que se denomina la parte superior de la pila. Por ejemplo, las bandejas en una cafetería. Las bandejas siempre se quitan de la parte superior y cuando el lavaplatos o el ayudante de camarero vuelve a colocar una bandeja en la pila, también se coloca en la parte superior. Una pila se conoce como una estructura de datos
de último en entrar, primero en salir (LIFO).


Referencia de imagen:tutorialspoint.com

En el siguiente ejemplo , escribiremos un programa C# que use Stack para identificar si la cadena es palindrómica.

namespace Stack
{
    class CsharpStack
    {
        private int p_index;
        private ArrayList list;
        public CsharpStack()
        {
            list = new ArrayList();
            p_index = -1;
        }
        public int count
        {
            get
            {
                return list.Count;
            }
        }
        public void push(object item)
        {
            list.Add(item);
            p_index++;
        }
        public object pop()
        {
            object obj = list[p_index];
            list.RemoveAt(p_index);
            p_index--;
            return obj;
        }
        public void clear()
        {
            list.Clear();
            p_index = -1;
        }
        public object peek()
        {
            return list[p_index];
        }
    }

    class program
    {
        public static void Main(string[] args)
        {
            CsharpStack alist = new CsharpStack();
            string ch;
            string word = "eye";
            bool isPalindrome = true;
            for (int x = 0; x < word.Length; x++)
                alist.push(word.Substring(x, 1));
            int pos = 0;
            while (alist.count > 0)
            {
                ch = alist.pop().ToString();
                if (ch != word.Substring(pos, 1))
                {
                    isPalindrome = false;
                    break;
                }
                pos++;
            }
            if (isPalindrome)
                Console.WriteLine(word + " is a palindrome.");
            else
                Console.WriteLine(word + " is not a palindrome.");
            Console.Read();
        }
    }
}

Salida:

ojo es un palindromo

Gracias por visitar!!