Как реализовать пузырьковую сортировку в обобщенном двусвязном списке? - C#

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

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

Как реализовать пузырьковую сортировку в обобщенном двусвязном списке? Сначала думал все просто, хотел реализовать операции перегрузки операторов, но оказалось для обобщенного типа нельзя этого сделать.

Решение задачи: «Как реализовать пузырьковую сортировку в обобщенном двусвязном списке?»

textual
Листинг программы
    class Program
    {
        static void Main(string[] args)
        {
            Car first = null, prev = null;
            Random r = new Random();
            for (int i = 0; i < 10; i++) 
            {
                prev = new Car(prev, first, r.Next(1990, 2016));
                if (i == 0) first = prev;
                Console.WriteLine(prev.year);
            }
            Console.WriteLine("----");
            Car.Sort(first);
            Car.Print(first);
            Console.ReadKey(true);
        }
    }
    class Car
    {
        Car prev, next;
        public int year;
        public Car(Car prev, Car next, int year)
        {
            this.year = year;
            if (prev == null) this.prev = this.next = this;
            else
            {
                prev.next = next.prev = this;
                this.prev = prev;
                this.next = next;
            }
        }
        static public void Sort(Car first)
        {
            for (Car end = first.prev; end != first; end = end.prev)
                for (Car ptr = first; ptr != end; ptr = ptr.next)
                    if (ptr.year > ptr.next.year)
                    {
                        int year = ptr.year;
                        ptr.year = ptr.next.year;
                        ptr.next.year = year;
                    }
        }
        static public void Print(Car first)
        {
            Car ptr = first;
            do
            {
                Console.WriteLine(ptr.year);
                ptr = ptr.next;
            } while (ptr != first);
        }
    }

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


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

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

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