список двонаправлений

У цій статті я опишу методику роботи з двонаправленим списком в класичному його варіанті. Введення списку, висновок і сортування по природному розмаїттю та полях елементів списку. Не буду вдаватися в теорію списків - перейду до опису того, що необхідно зробити для вирішення даного завдання, і по ходу справи опишу чому саме так я організував роботу.

Від адміністратора сайту

Для побудови списку нам знадобляться дві структури: Одна - поля елемента списку. Друга - сам елемент списку з якорями, які будуть зв'язувати елементи між собою.

Перша структура може виглядати так:

Вона виконує 4 умови:

  1. Якщо asc - по зростанню, і сортируемое поле - х:
  2. Якщо desc - за спаданням, і поле той же
  3. Якщо asc - по зростанню, але сортується друге поле, строкове
  4. Якщо desc - по спадаючій з строковим полем

У кожному з умов відповідно проводиться порівняння «більше» або «менше» в залежності від заданих параметрів сортування. Таким чином ця функція відповідає процедурі сортування, як їй чинити з елементами. В цілому це і є весь алгоритм сортування двонаправленого списку.

Збираємо описане вище в одну програму і дописуємо функцію main ():

Сортування двонаправленого списку в С ++