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

Перегрузка оператора ++ и сортировка списка - C++

Восстановить пароль Регистрация
 
timofei580
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 23
22.12.2012, 20:57     Перегрузка оператора ++ и сортировка списка #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
69
70
71
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
class Listing
{public:
   struct Elsp
        {int id;
         struct Elsp *sled;
       };
   struct Elsp *tec,*start;
   int size;
   Listing(int n)
       {tec=((struct Elsp*)malloc(sizeof(struct Elsp)));
        tec->sled=NULL;
        start=tec;
        for (int i=0; i<n; i++)
            {cin>>(tec->id);
             tec->sled=((struct Elsp*)malloc(sizeof(struct Elsp)));
             tec=tec->sled;
            }
         tec=start;
         size=n;
        }
   Listing(Listing *L)
       {start=0;
        tec=NULL;
        tec=((struct Elsp*)malloc(sizeof(struct Elsp)));
        tec->sled=NULL;
        start=tec;
        L->start=L->tec;
            for (int i=0; i<L->size; i++)
                {tec->sled=((struct Elsp*)malloc(sizeof(struct Elsp)));
                 tec=tec->sled;
                 L->tec=L->tec->sled;
                 tec->id=L->tec->id;
                }
            tec=start;
            size=L->size;
        }
    void operator++(int n)
             {int vrem;
               tec=start;
               for (int i = 0; i <n-1; i++)
                       for (int j=i+1; j <n; j++) 
                           {if(start->id>tec->id)
                            {vrem=start->id;
                            start->id=tec->id;
                            tec->id=vrem;
                            }
                tec=tec->sled;
                    }
            }
   void vivod(int n)
     {tec=start;
      for(int i=0;i<n;i++)
      {cout<<tec->id<<" ";
       tec=tec->sled;
      }
     tec=start;
      }
 
 
};
int _tmain(int argc, _TCHAR* argv[])
{Listing A(5);
 A++;
 A.vivod(5);
    return 0;
}
Проблема в том, что сортировать даже не собирается

Добавлено через 11 минут
Я перевёл кусок проги в безклассовую программу и там ругается на условие if(start->id>tec->id)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2012, 20:57     Перегрузка оператора ++ и сортировка списка
Посмотрите здесь:

перегрузка оператора + C++
C++ Перегрузка оператора <<
Перегрузка оператора C++
Перегрузка оператора индексации для связанного списка C++
Перегрузка оператора C++
C++ Перегрузка оператора ++
Перегрузка оператора сравнения и сортировка C++
Перегрузка оператора + C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
22.12.2012, 21:04     Перегрузка оператора ++ и сортировка списка #2
Если программа безклассовая, то, что такое start->id
и tec->id ?
timofei580
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 23
22.12.2012, 21:24  [ТС]     Перегрузка оператора ++ и сортировка списка #3
Вообщем наверно обычным пузырьком сортировать не получится, это ведь список, а не массив.....start и tec это начальные и текущие элементы....

Добавлено через 17 минут
А получится отсортировать пузырьком список ?
Yandex
Объявления
22.12.2012, 21:24     Перегрузка оператора ++ и сортировка списка
Ответ Создать тему
Опции темы

Текущее время: 01:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru