реклама на сайте
подробности

 
 
> сортировка связного списка
Sneg_87
сообщение Mar 5 2010, 04:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Структура TMyRect хратит координаты прямоугольников и их площади. Указатель на структуру представляется в виде связного списка. В *R0 записываются координаты прямоугольников прочитанных из файла. *X0 по размеру одинаков с *R0, но пустой - в него и нужно записать отсортированный список *R0. Сколько не пытался - ну никак не получается.
Отсортировать нужно по параметру S(площадь).

Код
struct TMyRect {
int x1,y1,x2,y2;
int S;
TMyRect *point; //point=next
};
TMyRect *R0 = NULL, *Rnew, *Rold, *tmp;//несортированный список
TMyRect *X0 = NULL, *Xnew, *Xold;//сортированный список

void sortirovka () {
//сортировка
Rnew=R0;
Xnew=X0;

while (Rnew!=NULL) {
for (Xnew=X0;Xnew->point!=0;Xnew=Xnew->point) {
  if (Rnew->point->S > Rnew->S) break;        }
  Rnew->point=Xnew->point; Xnew->point=Rnew;

Rnew=Rnew->point;
}
//конец сортировки
}


Сообщение отредактировал rezident - Mar 5 2010, 04:59
Причина редактирования: Оформление цитаты исходника.


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sneg_87
сообщение Mar 7 2010, 05:05
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882



Спасибо, AHTOXA, за ответы!
Меня интересует еще такой вопрос:
создается список указателей на структуру (Rnew = new TMyRect). как вернуться к указателю на первый элемент,когда нет указателя на начало?


--------------------
coding, кодинг, koDinГ, copyriting, printing ....
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 7 2010, 06:07
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Если нет указателя на начало, то никакsmile.gif
Поэтому надо обязательно хранить указатель на начало.

Есть ещё вариант - закольцевать список, то есть, вместо NULL хранить у последнего элемента указатель на первый. Тогда, зная один любой элемент списка, мы можем перебрать весь список.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016