![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| VAAKAraceGUM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 13.2.2012 Репутация: нет Всего: нет |
Здравствуйте, мне дали задание сделать восходящую сортировку связного списка слиянием .
Собственно моя программа (создание двусвязного списка, добавление элемента в любое место, удаление из любого места, печать ) выглядит так :
Соответственно, мне надо сделать эту злополучную Восходящую сортировку связного списка слиянием.Помогите плз... |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
делаешь ф-цию, в которую передаёшь указатель на стартовый элемент списка. в этой функции проходишь от стартового элемента до конца списка и ищёшь минимальный элемент, затем меняешь местами стартовый и найденный минимальный элементы и вызываешь эту же функцию со стартовым элементом равным следующему за стартовым элементом. как-то так
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| VAAKAraceGUM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 13.2.2012 Репутация: нет Всего: нет |
borisbn, а ты проверял, она у тебя работает ? Просто у меня она чет ничего не делает, циклится , я вместо struct stack * start , поставил root , как корневой элемент...
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
эту почётную обязанность я возложил на тебя я вообще-то тебе текстом всё объяснил, а код привёл просто так - для пояснения сказанного А виснет она потому, что я предполагал, что твой в твоём листе, как в честном контейнере, next последнего элемента равен 0 (или NULL - как угодно). можешь исправить сравнение с 0-м в моём коде на сравнение с last Добавлено через 1 минуту и 59 секунд не. неправильно будет сравнивать с last - самый последний элемент не отработает. лучше занули next у последнего элемента. а раз уж у тебя двунаправленный список, то и prev у первого элемента неплохо было бы занулить -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| VAAKAraceGUM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 13.2.2012 Репутация: нет Всего: нет |
В общем в итоге я прозрел и сделал другой рекурсивный алгоритм :
А потом просто восстановил список из массива... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |