Программа на языке C# для реализации стека с операциями Push и Pop

В этом примере мы напишем программу на языке C# для реализации стека с операциями Push и Pop.

Основные операции, которые вы выполняете со стеком, — это Push и Pop. Данные добавляются в стек с помощью метода Push. Данные удаляются из стека с помощью метода Pop.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Stack
{
    class Program
    {
        static void Main(string[] args)
        {
            stack st = new stack();
            while (true)
            {
                Console.Clear();
                Console.WriteLine("\nStack Меню(размер -- 10)");
                Console.WriteLine("1. Добавить элемент");
                Console.WriteLine("2. Показать последний элемент по стеку.");
                Console.WriteLine("3. Удалить последний элемент.");
                Console.WriteLine("4. Показать stack элементов.");
                Console.WriteLine("5. Выход");
                Console.Write("Выберите один из вариантов: ");
                int choice = Convert.ToInt32(Console.ReadLine());
                switch (choice)
                {
                    case 1:
                        Console.WriteLine("Введите элемент : ");
                        st.Push(Console.ReadLine());
                        break;

                    case 2:
                        Console.WriteLine("Последний элемент: {0}", st.Peek());
                        break;

                    case 3:
                        Console.WriteLine("Элемент удален: {0}", st.Pop());
                        break;

                    case 4:
                        st.Display();
                        break;

                    case 5:
                        System.Environment.Exit(1);
                        break;
                }
                Console.WriteLine("\nДля продолжения нажмите любую клавишу...");
                Console.ReadKey();
                
            }
        }
    }

    interface StackADT
    {
        Boolean isEmpty();
        void Push(Object element);
        Object Pop();
        Object Peek();
        void Display();
    }
    class stack : StackADT
    {
        private int StackSize;
        public int StackSizeSet
        {
            get { return StackSize; }
            set { StackSize = value; }
        }
        public int top;
        Object[] item;
        public stack()
        {
            StackSizeSet = 10;
            item = new Object[StackSizeSet];
            top = -1;
        }
        public stack(int capacity)
        {
            StackSizeSet = capacity;
            item = new Object[StackSizeSet];
            top = -1;
        }
        public bool isEmpty()
        {
            if (top == -1) return true;

            return false;
        }
        public void Push(object element)
        {
            if (top == (StackSize - 1))
            {
                Console.WriteLine("Stack заполнен!");
            }

            else
            {

                item[++top] = element;
                Console.WriteLine("Объект продвинулся успешно!");
            }
        }
        public object Pop()
        {
            if (isEmpty())
            {
                Console.WriteLine("Stack пустой!");
                return "No elements";
            }
            else
            {

                return item[top--];
            }
        }
        public object Peek()
        {
            if (isEmpty())
            {

                Console.WriteLine("Stack пустой!");
                return "No elements";
            }
            else
            {
                return item[top];
            }
        }


        public void Display()
        {
            for (int i = top; i > -1; i--)
            {
                Console.WriteLine("Объекты {0}: {1}", (i + 1), item[i]);
            }
        }
    }
}

 

Вывод:

Stack Меню(размер — 10)

  1. Добавить элемент
  2. Показать последний элемент по стеку.
  3. Удалить последний элемент.
  4. Показать stack элементов.
  5. Выход
    Выберите один из вариантов: 1
    Введите элемент :
    Лес
    Объект продвинулся успешно!

Для продолжения нажмите любую клавишу…

Stack Меню(размер — 10)

  1. Добавить элемент
  2. Показать последний элемент по стеку.
  3. Удалить последний элемент.
  4. Показать stack элементов.
  5. Выход
    Выберите один из вариантов: 1
    Введите элемент :
    Дом
    Объект продвинулся успешно!

Для продолжения нажмите любую клавишу…

Stack Меню(размер — 10)

  1. Добавить элемент
  2. Показать последний элемент по стеку.
  3. Удалить последний элемент.
  4. Показать stack элементов.
  5. Выход
    Выберите один из вариантов: 1
    Введите элемент :
    Ветер
    Объект продвинулся успешно!

Для продолжения нажмите любую клавишу…

Stack Меню(размер — 10)

  1. Добавить элемент
  2. Показать последний элемент по стеку.
  3. Удалить последний элемент.
  4. Показать stack элементов.
  5. Выход
    Выберите один из вариантов: 2
    Последний элемент: Ветер

Для продолжения нажмите любую клавишу…

Stack Меню(размер — 10)

  1. Добавить элемент
  2. Показать последний элемент по стеку.
  3. Удалить последний элемент.
  4. Показать stack элементов.
  5. Выход
    Выберите один из вариантов: 3
    Элемент удален: Ветер

Для продолжения нажмите любую клавишу…

Stack Меню(размер — 10)

  1. Добавить элемент
  2. Показать последний элемент по стеку.
  3. Удалить последний элемент.
  4. Показать stack элементов.
  5. Выход
    Выберите один из вариантов: 4
    Объекты 2: Дом
    Объекты 1: Лес

Для продолжения нажмите любую клавишу…

Обновлено: 07.01.2020 — 11:36

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.