![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
![]()
Нет ничего проще чем отсортировать список.
Отсортировать список. Задача хоть не очень сложная, но легко может возникнуть путанница с указателями. Список представляет из себя структуру кот-я содержит указатель на следующую структуру этого-же типа. При сортировке придется менять местами элементы списка. Допустим мы поменяли второй с пятым элементы списка. Теперь на месте второго бывший пятый, а на месте пятого бывший второй. Так как элемент списка содержит указатель на следуюший элемент, то имеем указатель на шестой вместо третьего(во втором) и на третий вместо шестого(в пятом). Если элеметов списка фактически 6 то их станет практически 3. Получется надо менять и указатель на следующий элемент в каждом из меняемых элементов: Код:
![]() В поисках решения данного вопроса, иные умы наворачмвают программу так что потом сами не могут разобрать свой код. Последний раз редактировалось Nomlpppp; 30.03.2009 в 14:40. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
![]()
Между тем есть простой способ сортировки и работы со списками. Идея такая:
В примере выше была попытка перенацеливания указателей на элементы списка, что в случае со списками плохой способ. В примере рассмотренном ниже список останется неизменным(порядок элементов не меняется), будет меняться только указатель на тип SOMETHING(т.е на сами данные). Например имеется структура даных Код:
Код:
будет работать с ним. Вот ПРИМЕР: Код:
Последний раз редактировалось Nomlpppp; 30.03.2009 в 13:42. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
![]()
Подробнее о функции change_list
Цитата:
Вот как ывглядит эта-же функция опботающаяя по принципу перенацеливания указателей на элементы списка Код:
Последний раз редактировалось Nomlpppp; 30.03.2009 в 14:37. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка списка | Рамик | Помощь студентам | 4 | 11.03.2009 14:01 |
Сортировка списка | Gonzo | Помощь студентам | 5 | 11.03.2009 11:08 |
Сортировка списка... | Arkuz | Помощь студентам | 2 | 11.05.2008 00:53 |