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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2012, 12:09   #1
lowercase
Пользователь
 
Регистрация: 15.05.2010
Сообщений: 88
По умолчанию Удаление повторяющихся элементов двунаправленого связного списка (Си)

Здраствуйте. Не получается уадалить одинаковые элементы в списке. Програма вылетает, а компилятор выдает ошибку сегментации.
Код:
typedef struct _term{
    int x[TERM_MAX_SIZE];
    struct _term* next;
    struct _term* prev;
} term;

typedef struct _boolnf{
    term* first;
    term* last;
} boolnf;

int delete_duplicates(boolnf* b){
    term* i;
    term* j;
    int count = 0;
    for(i = b->first; i->next != NULL; i = i->next)
        for(j = i->next; j != NULL; j = j->next){
            if(TERM_CMP_EQUAL & compare_terms(i, j)){
                if(!i->prev && i->next){
                    i->next = i->next->next;
                    i = i->next;
                    free(i->prev);
                    i->prev = NULL;
                    count++;
                }
                if(!i->next && i->prev){
                    i->prev = i->prev->prev;
                    i = i->prev;
                    free(i->next);
                    i->next = NULL;
                    count++;
                }
                if(i->next && i->prev){
                    term* t = i->next;
                    i->next->prev = i->prev;
                    i->prev->next = i->next;
                    free(i);
                    i = t;
                    count++;
                }
            }
        }
    return count++;;
}

Последний раз редактировалось lowercase; 13.10.2012 в 12:13.
lowercase вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal - Удаление одинаковых элементов списка assasko Помощь студентам 0 23.05.2011 10:33
перестановка элементов двусвязного списка mansp Общие вопросы C/C++ 1 09.02.2011 19:46
С++ Строки - списки. Удаление элементов списка. Daramos Помощь студентам 0 16.12.2010 09:05
Удаление элементов из списка. grave123 Общие вопросы C/C++ 0 10.03.2010 15:33
Удаление элементов из списка Wi1D Помощь студентам 0 18.05.2009 00:23