|
0 / 0 / 0
Регистрация: 03.10.2019
Сообщений: 10
|
|
Как реализовать обратную сортировку (по убыванию) в двусвязном списке на C++?07.05.2020, 16:00. Показов 432. Ответов 6
Метки нет (Все метки)
0
|
|
| 07.05.2020, 16:00 | |
|
Ответы с готовыми решениями:
6
Как реализовать пузырьковую сортировку в обобщенном двусвязном списке? Реализовать файл структур на двусвязном списке Реализовать поиск максимального элемента в двусвязном списке |
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 07.05.2020, 16:38 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 03.10.2019
Сообщений: 10
|
|
| 07.05.2020, 16:42 [ТС] | |
|
не получается. Никак.
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 07.05.2020, 16:43 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 03.10.2019
Сообщений: 10
|
|
| 07.05.2020, 17:23 [ТС] | |
|
это с сортировкой по возрастанию.
struct spisok { int inf; spisok* pred; spisok* next; }; void addleft(spisok* sp, int inf) { spisok* spt = new spisok; spt->inf = inf; spt->pred = sp->pred; spt->next = sp; spt->pred->next = spt; sp->pred = spt; return; } int readdel(spisok* sp) { int inf = sp->inf; sp->pred->next = sp->next; sp->next->pred = sp->pred; delete sp; return inf; } void ochered(spisok** beg, spisok** n) { *beg = new spisok; *n = new spisok; (*beg)->next = *n; (*n)->pred = *beg; } void print(spisok* beg, spisok* n) { spisok* a = beg; while (a != n->pred) { cout << a->next->inf << " "; a = a->next; } cout << endl; } void del(spisok*& beg, spisok*& n) { spisok* tmp = beg->next; while (tmp != n) { tmp->pred->next = tmp->next; tmp->next->pred = tmp->pred; delete tmp; tmp = beg->next; } cout << endl; delete beg; beg = NULL; delete n; n = NULL; } void slip(spisok** sl, spisok** sr, spisok* slL, spisok* srL, spisok* slR, spisok* srR) { ochered(sl, sr); spisok* sptL = slL->next; spisok* sptR = slR->next; while ((sptL != srL) && (sptR != srR)) { if (sptL->inf < sptR->inf) { addleft(*sr, readdel(sptL)); sptL = slL->next; } else { addleft(*sr, readdel(sptR)); sptR = slR->next; } } while (sptL != srL) { addleft(*sr, readdel(sptL)); sptL = slL->next; } delete slL; delete srL; while (sptR != srR) { addleft(*sr, readdel(sptR)); sptR = slR->next; } delete slR; delete srR; } void razbiv(spisok* sl, spisok* sr, spisok** slL, spisok** srL, spisok** slR, spisok** srR) { ochered(slL, srL); ochered(slR, srR); spisok* spt = sl->next; while (spt != sr) { addleft(*srL, readdel(spt)); spt = sl->next; if (spt != sr) { addleft(*srR, readdel(spt)); spt = sl->next; } } delete sl; delete sr; } void Sort(spisok** sl, spisok** sr) { spisok* slL, * srL, * slR, * srR; if ((*sl)->next->next == *sr) return; razbiv(*sl, *sr, &slL, &srL, &slR, &srR); slip(sl, sr, slL, srL, slR, srR); } void zap(spisok* beg, spisok* n) { int g, tall; do { cout << "Введите колличество элементов в списке: "; cin >> tall; } while (tall <= 1); for (int i = 0; i < tall; i++) { cout << "Введте число: "; cin >> g; spisok* p = new spisok; p->inf = g; p->next = n; p->pred = n->pred; n->pred = p; p->pred->next = p; } } int main() { setlocale(LC_ALL, "rus"); spisok* sl, * sr,* slL,* srL,* slR,* srR,* SL,* SR; ochered(&slL, &srL); zap(slL, srL); ochered(&slR, &srR); zap(slR, srR); slip(&sl, &sr, slL, srL, slR, srR); Sort(&sl, &sr); print(sl, sr); del(sl, sr); }
0
|
|
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 07.05.2020, 17:34 | |
|
Alex478077, https://www.cyberforum.ru/blog... g4022.html
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||||||||||||
| 07.05.2020, 17:38 | |||||||||||||||||
Тогда сортировка будет выглядеть так
0
|
|||||||||||||||||
| 07.05.2020, 17:38 | |
|
Помогаю со студенческими работами здесь
7
Нужно реализовать обратную сортировку пузырьком Реализовать программно функцию, которая меняет местами два указанных узла в линейном двусвязном списке Реализовать сортировку по возрастанию и убыванию С использованием heap реализовать сортировку по убыванию Как удалить сторожей в двусвязном списке? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|