Сделать сортировку стека методом простого выбора - C#

Узнай цену своей работы

Формулировка задачи:

Привет всем)) Помогите пожалуйста с сортировкой стека методом простого выбора. Стек есть а вот сам метод сортировки простым выбором не могу понять как надо его соединить со стеком =(( Вот стек
using System;
using System.Text;
 
namespace ConsoleApplication10
{
    class Program
    {
        class Node
        {
            public int val;
            public Node next;
            public Node prev;
        }
 
        class Stack
        {
            Node root;
            Node top;
 
            public void Push(int _val)
            {
                if (root == null)
                {
                    root = new Node();
                    root.val = _val;
                    top = root;
                }
                else
                {
                    top.next = new Node();
                    top.next.val = _val;
                    top.next.prev = top;
                    top = top.next;
                }
            }
 
            public int Pop(int _val)
            {
                int result;
                if (root == null)
                {
                    Console.WriteLine("Error: stack is empty");
                }
                else if (root == top)
                {
                    result = root.val;
                    root = null;
                    return result;
                }
                result = top.val;
                top = top.prev;
                top.next = null;
                return result;
            }
 
            Node ElementAt(int num)
            {
                if (root != null && num > -1)
                {
                    int c = 0;
                    Node current = root;
                    while (c < num)
                    {
                        c++;
                        current = current.next;
                    }
                    return current;
 
                }
                return null;
            }
 
            int Count()
            {
                int c = 0;
                if (root != null)
                {
                    Node current = root;
                    while (current != top)
                    {
                        c++;
                        current = current.next;
                    }
                    c++;
                }
                return c;
            }
 
            public void Sort()
            {
 
            }

            public void Print()
            {
                if (root == null)
                {
                    Console.WriteLine("Stack is empty");
                    return;
                }
                Node i = root;
                while (i != top)
                {
                    Console.Write(i.val.ToString() + " ");
                    i = i.next;
                }
                Console.WriteLine(top.val.ToString());
            }
        }
 
        public static void Main(string[] args)
        {
            Stack stack = new Stack();
            stack.Push(5);
            stack.Push(3);
            stack.Push(7);
            stack.Push(2);
            stack.Push(1);
            stack.Print();
            stack.Sort();
            stack.Print();
            Console.ReadKey();
            Console.ReadKey();
        }
    }
}

Решение задачи: «Сделать сортировку стека методом простого выбора»

textual
Листинг программы
st.ToArray().ToList().Sort();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы