![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Quant |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
Здравствуйте.
Подскажите пожалуйста такое дело: Код void insert(char *s) { list *curr; pthread_mutex_lock(&mut); curr = (list *)malloc(sizeof(list)); if (!curr) { printf("malloc error.\n"); } else { strncpy(curr->s, s, 80); curr->next = head; head = curr; count++; } pthread_mutex_unlock(&mut); } ... ... ... void vesicule() { list *prev, *curr; int i; if (!head) { count = 0; return; } for (i = 0; i < count; i++) { prev = NULL; curr = head; while (curr && curr->next) { if (strcmp(curr->s, curr->next->s) > 0) { if (prev) { prev->next = curr->next; } else { head = head->next; } oins(curr->next, curr); } prev = curr; curr = curr->next; } } count = 0; ... ... ... int oins(list *head, list *item) { int i = 0; list *curr = head, *prev = NULL; if (!head) return (0); while (curr && (strcmp(item->s, curr->s) > 0)) { prev = curr; curr = curr->next; i++; } if (prev) { prev->next = item; item->next = curr; } return (i); } вот в функции vesicule , как изменить цикл так, чтобы обмен строк (функция oins) происходил не для всех i - количества строк, а останавливался, когда просто нет строк, которые надо менять. Ну в меру возможного подскажите. Заранее благодарю Сообщение отредактировано: Quant - 3.12.2008 22:44 |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 0:36 |