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

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

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

Не срабатывает функция сортировки связного списка - C++

23.05.2013, 18:18. Просмотров 224. Ответов 1
Метки нет (Все метки)

Добрый день!
Не срабатывает функция сортировки связного списка. Как студент, буду благодарен за указания, в чём дефекты функции.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
 /* элемент списка*/
    typedef struct client {
        int number; /* */
        int balance;/* */
        char lastName[20]; /* */
        char firstName [20];/* */
        char phone[11]; /* */
        char email[20];
        struct client *prev;/* */
        struct client *next; 
        struct client *tmp;     /* */
    
    } Client;
    Client *firstc,*currentc,*newc, *a, *b,*tmp;  /*указатели*/
    /* *firstc первый элемент в списке
       *currentc текущий узел
       *newc адрес вновь выделенного узла
       *a временный указатель для функции Sort
       *b временный указатель для функции Sort
       *tmp временный указатель для функции Sort
    */
    int counter = 0;
    int cnum = 0; /*cnum gives unique account numbers avoiding misentering*/
 
/*---функция сортировки------*/ 
 
void Sort()
{
    /*объявлена переменная - счётчик для  
    операций цикла сортировки */
    int a = 0;/*переменные для поля balance*/
    int b = 0;/**/
    if(firstc==NULL)
         printf("Database is empty"); /*сообщение*/
          
    else 
        currentc = firstc;
        currentc->prev = NULL;
        tmp = NULL;
 
    while((currentc=currentc->next)!= NULL)
        {   /* 1) сравнить два рядом расположенных узла;
               2) ЕСЛИ значение больше*/
            int a = currentc->balance;
            int b = currentc->next->balance;/*дебаггер останавливает в этой точке, потому что дальше нет узла,
            а точки остановки нет?*/                        
            
            if (a>b)
            //if(currentc->balance >currentc->next->balance)
            {   /*......выполнить перестановку узлов*/
 
            /*здесь должен быть код, использующий три указателя*/
            tmp = currentc->next;
            currentc->next->next = currentc->next;
            currentc->next->next = tmp;
                
            }
            /*3)продвинуться дальше по списку*/
            else
                currentc = currentc->next;
            
            /*4) повторить до окончания списка*/
        }   
        currentc = firstc;
        listAll();
        return;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2013, 18:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не срабатывает функция сортировки связного списка (C++):

Каковы варианты сортировки связного списка - C++
Дорого времени суток. Есть двусвязный список хранящий допустим int, какие есть варианты по его сортировки? Например: 1. Считать все...

Функция удаляющая первый узел из связного списка - C++
Реализуйте и протестируйте функцию: template <class T> void DeleteFront(Node<T>* &head);удаляющую первый узел из связного списка,...

функция для нахождения длины связного списка - C++
Помогите написать функцию для нахождения длины связного списка. реализуйте функцию итеративно и рекурсивно. getLength (NULL) должен...

Функция сортировки вектора и списка - C++
Добрый день, помогите пожалуйста) Суть задания в том, что нужно написать функцию сортировки (Одну!) сразу для вектора и списка без...

Создание связного списка - C++
нужно создать связной список, что собственно уже сделал. что нужно: -функции: -root (выводит список) -push (+1 елемент в...

Сортировка связного списка - C++
Привет всем! как правильно написать сортировку для связного циклического списка ? помогите пожалуйста... #include <iostream> using...

1
Mariner
7 / 0 / 1
Регистрация: 31.12.2012
Сообщений: 6
15.06.2013, 14:21  [ТС] #2
Сам себе, чтобы закрыть вопрос.
Функция неправильная. Работать не могла.
Вопрос решён.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2013, 14:21
Привет! Вот еще темы с ответами:

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

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

Реализация связного списка - C++
Помогите решить задачу Нужно написать программу без использования библиотеки list я вот начал, только функция добавления не...

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


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

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

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