IPB

Здравствуйте, гость ( Вход | Регистрация )

> Упорядочивание односвязного списка (С)
Nikgamer
сообщение 5.5.2010, 12:24
Сообщение #1


Новичок
*

Группа: Продвинутые
Сообщений: 9
Регистрация: 22.4.2010
Город: Novosibirsk



Привет. Вот дали на мою голову такую задачку, с условием, что реализую на СИ (без ++-ов). Задача формулируется так. На вход подается произвольное кол-во натуральных чисел (не по порядку, с повторами etc.). Нужно, используя односвязный список, отсортировать эти числа по возрастанию, удалить повторы и распечатать, собственно, получившийся список.
Ну-с, проблемы с реализацией. Ниже будет приаттачен мой индусский быдлокод. Вопросов 2. Первый - правильно ли сортируется? Второй - как реализовать печать?
Код
#include <stdio.h>
#include <stdlib.h>
int main () {
int a;
struct list {int data; struct list *next;};
struct list *h, *t, *p,*r,*c=NULL,*d;
h=(struct list*)malloc(sizeof(struct list));
h->data=0;
h->next=NULL;
while (scanf("%d", &a)==1){
    p=(struct list*)malloc(sizeof(struct list));
    p->data=a;
    p->next=NULL;
    if(h->data==0){
        h->data=p->data;
        continue;
    }
    if(p->data<h->data){        
        p->next=h;
        h=p;
    }
    if(p->data>h->data){
        for(t=h;t->next!=NULL;t=t->next){
            if(p->data<t->next->data){
                c=t->next;
                t->next=p;
                p->next=c;
            }
        }
        t->next=p;
    }
}
return 0;
}
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 27.5.2025, 22:33

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru