Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2009, 00:04   #1
alesfoss
 
Регистрация: 29.03.2009
Сообщений: 3
По умолчанию Cортировка односвязного списка

Есть функция сортировки списка, но не сотритует...)
вот она, поправьте, кому не лень:

Код:
void  sort (struct films **start, int quant)
{
int i,j;
struct films* kino;
struct films* tmp=NULL;
tmp=(struct films *)malloc(sizeof(struct films));
kino=(*start)->next;
for (i=0; i<quant; i++)
	for (j=0; j<quant-i; j++)
	  {
		if ((kino->next)->year>kino->year)
		  {
			tmp=kino;
			kino->next=(kino->next)->next;
			kino=kino->next;
			kino->next=tmp;
		  }
		//kino=tmp->next;
		
	  }

printf ("\n\nYour data have been sorted =)\n");

}
"Ганс'н'роузез - лучшие....Мм...Дэф Леппард....А потом пришёл этот сопляк Кобейн и всё испортил.."

Последний раз редактировалось MaTBeu; 30.03.2009 в 11:50.
alesfoss вне форума Ответить с цитированием
Старый 30.03.2009, 00:05   #2
alesfoss
 
Регистрация: 29.03.2009
Сообщений: 3
По умолчанию

здесь
kino - структура, элемент списка,
quant - кол-во элементов в списке,
next - указатель на следующий эл-т,
start - указатель на начало списка
"Ганс'н'роузез - лучшие....Мм...Дэф Леппард....А потом пришёл этот сопляк Кобейн и всё испортил.."
alesfoss вне форума Ответить с цитированием
Старый 30.03.2009, 11:06   #3
vovunisaev
 
Регистрация: 25.03.2009
Сообщений: 9
По умолчанию Что увидел

Цитата:
Сообщение от alesfoss Посмотреть сообщение
Есть функция сортировки списка, но не сотритует...)
вот она, поправьте, кому не лень:

Код:
void  sort (struct films **start, int quant)
{
int i,j;
struct films* kino;
struct films* tmp=NULL;
tmp=(struct films *)malloc(sizeof(struct films));
kino=(*start)->next; // Почему начинаеш со 2го элемента? первый уже самый большый?
for (i=0; i<quant; i++)
	for (j=0; j<quant-i; j++) 
	  {
		if ((kino->next)->year>kino->year)
		  {
			tmp=kino;
                        kino->next=(kino->next)->next; // Это зачем здесь?
			kino=kino->next;
			kino->next=tmp;
		  }
		//kino=tmp->next;
		
	  }

printf ("\n\nYour data have been sorted =)\n");

}
Вот попробуй

Последний раз редактировалось vovunisaev; 30.03.2009 в 11:11.
vovunisaev вне форума Ответить с цитированием
Старый 30.03.2009, 19:46   #4
alesfoss
 
Регистрация: 29.03.2009
Сообщений: 3
По умолчанию

Мм...спасибо
"Ганс'н'роузез - лучшие....Мм...Дэф Леппард....А потом пришёл этот сопляк Кобейн и всё испортил.."
alesfoss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение списка StasSv Microsoft Office Excel 2 01.11.2008 15:13
создание списка zetrix Microsoft Office Excel 0 31.10.2006 08:05