![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
есть класс реализующий кольцевой список
Код:
пробовал так но не получается. почему? Код:
Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 158
|
![]()
В тот момент, когда Вы меняете 2 элемента местами, позаботьтесь о присвоении каждому корректных указателей как Next, так и Prev. Иначе у вас список весь рушится.
Далее обратите внимание, что если вы корректно поменяли местами элементы, то val2->Next будет уже далеко не тем, что вы ожидаете. )) |
![]() |
![]() |
![]() |
#3 |
Ну и что? :)
Форумчанин
Регистрация: 20.10.2008
Сообщений: 129
|
![]()
а не проще сначала отсортировать, а потом создать?
![]()
Учиться, учиться и еще раз учиться
![]() |
![]() |
![]() |
![]() |
#4 | |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]() Цитата:
может у вас есть ссылка где есть нечто подобное? |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 158
|
![]()
У меня дома где-то валяются полностью реализованые списки (одно- и двусвязные), ещё со времён 2 курса универа. Если очень надо, могу сегодня вечером порыться и выложить. А сейчас с работы в падлу писать - долго. Попробуйте всё же сами отладить. Это полезно сделать хотя бы раз в жизни самому )) Для полного понимания.
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
А в принципе ход моих мыслей правилен?
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 10.12.2007
Сообщений: 158
|
![]()
Так. Ну во 1х исходя из смысла классов их имена надо поменять местами )) Так Node - "вершина" - как раз базовый элемент из которого строится кольцо. А Ring - весь список.
Это не существенно, как и следующее: выводить результаты всё же лучше в разные файлы ![]() Теперь по существу. Как я понимаю в переменной Ring *ring хранится рут элемент (0й, от которого надо сортировать..). Сортировка пузырьком, в ней: в переменной val - i-й элемент (отсчитывая от ring), в val2 - j-й. Тогда: Внутренний цикл начинаем не с i-го элемента, а с (i+1)-го. Обязаьтельно. Это логически верно, тк хотя мы и не используем j, получается 1 лишняя итерация при которой мы захватываем 0й элемент ещё раз. Процедура перемены мест элементов: Код:
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
![]()
вот додумал еще немного
Код:
сама замена элементов происходит правильно указатели тоже корректны. Я только не знаю как быть с указателями first и second когда они выходят из циклов. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка линейного списка. | ТИВ | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 23.11.2008 22:39 |
Вывод кольцевого списка в обратном порядке | parinoff | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 22.11.2008 12:03 |
Сортировка списка... | Arkuz | Помощь студентам | 2 | 11.05.2008 00:53 |
Сортировка списка... | Arkuz | Компоненты Delphi | 4 | 03.05.2008 23:21 |
Сортировка списка | Александр из Перми | Microsoft Office Excel | 3 | 27.01.2007 22:46 |