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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ace Ventura
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 7
#1

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

19.12.2012, 22:14. Просмотров 212. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2012, 22:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка списка! Ошибка! (C++):

"Сортировка двусвязного списка путем исключения элемента с минимальным значением и включения его в начало нового списка - C++
Здравствуйте! Возникла проблема с программой. Тема: &quot;Сортировка двусвязного списка путем исключения элемента с минимальным значением и...

Сортировка списка - C++
Получается, что пользователь вносит книги в библиотеку, записывая имя писателя, название, год издания и тд... После чего он может...

Сортировка списка - C++
Здравствуйте, не совсем понимаю как должна быть реализована сортировка вставками в деке. Что имеется на данный момент: class List...

Сортировка списка - C++
Народ нужна помощь :) Элементы списка представлены следующим образом: class Node { public: char *name; Node *next; ...

Сортировка списка - C++
Помогите пожалуйста, нужна сортировка методом вставок односвязанного кольцевого списка, не пойму как делать. Со списками ток начал...

Сортировка списка - C++
Всем привет) Нужно реализовать сортировку списка, линейного однонаправленного. Написал, но что-то как-то не правильно... void...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
19.12.2012, 22:22 #2
Цитата Сообщение от Ace Ventura Посмотреть сообщение
while (cur->next) //зацикливается на этом цикле
не уверен, но может быть вот так правильно?
C++
1
while (cur=cur->next)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2012, 22:22
Привет! Вот еще темы с ответами:

Сортировка списка - C++
помогите сделать сортировку по возрасту, а то ничего не выходит #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; struct...

Сортировка списка - C++
Дан список сел и расстояния до них от города. Нужно вывести села в порядке удаленности от города. Городов до 10^8. Расстояния - целые...

Сортировка списка - C++
Здравствуйте!!! Прошу помочь мне написать алгоритм сортировки односвязного списка. Задание такое: необходимо из элементов трёх списков...

Сортировка списка - C++
Привет, всем.. Ребята помогите у подруги зачет по программированию ей надо решить задачку.. Информационное поле элемента...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru