Структура 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 ....