Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Сортировка списка! Ошибка! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Считывание матрицы из файла http://www.cyberforum.ru/cpp-beginners/thread738985.html
Помогите пожалуйста: Нужно считать из файла матрицу NxM. Размерность задается в 1ой строке файла. Очень нужно и как можно быстрей)
C++ Указатель на указатель. Работа со структурами Я использую в программе указатель на указатель на структуру(а именно, на начальную структуру). Как его в начале проинициализировать? struct ZNAK **pMainBeg //??? //... void add_elem(struct ZNAK... http://www.cyberforum.ru/cpp-beginners/thread738959.html
Очистка файла с позиции C++
Подскажите, есть ли какая ни будь функция у fstream, что бы удалить содержимое файла начиная с определенной позиции. Например у нас есть fstream fstr(f.txt); переходим на позицию fstr.seekg(50); ...
Описать структуру с именем TRAIN C++
описать структуру с именем TRAIN, содержащую следующие поля: * название пункта назначения; * номер поезда; * время отправления. Написать программу, выполняющую следующие действие: * ввод с...
C++ Определить все варианты вычеркивания символов http://www.cyberforum.ru/cpp-beginners/thread738924.html
Имеем две строки. Определить все варианты вычеркивания символов из первой строки, при которых оставшиеся символы образуют строку, совпадающую со второй строкой. Пример: "Самарина Ирина" "Сара"...
C++ Размытие изображения наложением маски имеется изображение 32 битное в bmp формате, нужно его размыть маской 3х3. язык-Cpp как вообще это делается, подскажите подробнее

Показать сообщение отдельно
Ace Ventura
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 7

Сортировка списка! Ошибка! - C++

19.12.2012, 22:14. Просмотров 214. Ответов 1
Метки (Все метки)

Написал программу по двунаправленным линейным спискам. Написал сортировку, но она зацикливается, почему не знаю, и вроде как не удаляет элементы... Помогите, пожалуйста, разобраться!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
n=0;
                cur=beg;
                while (cur)
                {
                    n++;
                    cur=cur->next;
                }
                cur1=beg;
                for (int i=0; i<n; i++)
                {
                    cur=beg;
                    while (cur->next) //зацикливается на этом цикле
                    {
                        if ((strcmp(cur->fam, cur->next->fam)<0) && (strcmp(cur->fam, cur1->fam)<=0))
                            cur1=cur;
                        cur=cur->next;
                    }
                    cur=add();
                    *cur=*cur1;
                    cur=cur1;
                    beg=delet();
                }
Функция add:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
    if(beg == NULL)
    {
        beg =new student;
        beg->next = NULL;
        beg->pref = NULL;
        cur=beg;
        return beg;
 
    }
    cur=beg;
    while (cur->next!=NULL)
    {
        cur=cur->next;
    }
    cur->next=new student;
    cur->next->pref=cur;
    cur=cur->next;
    cur->next=NULL;
    return cur;
}
И delet():
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    struct student *cur1, *last;
    cur1=cur;
    last=beg;
    while (last->next!=NULL) 
        last=last->next;
    if(cur1->pref) 
        cur1->pref->next = cur1->next;
    else 
    { 
        beg = cur1->next;
        if(beg) beg->pref = NULL;
    }
    if(cur1->next) 
        cur1->next->pref = cur1->pref;
    else 
        last = cur1->pref;
    return beg;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru