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

Не работает программа - "Построить класс для работы с односвязным списком." - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ С++ ООП локальные переменные http://www.cyberforum.ru/cpp-beginners/thread897819.html
Есть розмерность для матрицы n i m, если я ввожу их в функции create, то уже функция print их не видит.я понимаю что они локальные, как же сделать чтоб они были видны во всех функциях? #include <iostream> using namespace std; template <class T> class matrix { private:
C++ Преобразование матрицы до верхнетреугольной и нижнетреугольной методом Гаусса Привет! Нужна помощь в преобразовании матрицы до нижнетреугольной методом Гаусса. Преобразование до верхнетреугольной вышло, со вторым проблемы. Прошу помочь. Код преобразования до верхнетреугольной прилагаю, среда c++ Builder 6: int main(int argc, char* argv) { float **A, **Ar, *B, *Br, *X, *r, kf, temp; int i,j,k=0,n; bool w=true; printf("Razmernost: "); cin>>n; A= (float... http://www.cyberforum.ru/cpp-beginners/thread897812.html
Идентификаторы списка в качестве аргументов функции C++
Хочу организовать поиск по списку с помощью функции, в которую бы передавались: поле, по которому искать (собсно какая-то переменная из списка) и значение, которое искать. Никак не могу понять, как такое притворить в жизнь?
C++ Из текста выбрать числа и записать в массив
Из текста выбрать числа и записать в массив. Предполагается, что количество встречающихся чисел не более 10.
C++ Строки, нужно подправить код http://www.cyberforum.ru/cpp-beginners/thread897799.html
Есть задание : Из заданной последовательности слов удалить слова, содержащие числа. и я написал данный код: Код: #include <iostream> #include <list> #include <string>
C++ Неправильный рандом Здравствуйте. Программа должна заполнять массив случайными, не повторяющимися элементами. Однако не смотря на то что максимальное значение случайных элементов было задано 50, массив заполняется любыми числами, в том числе и очень большими. Как это исправить? int a,i,j,b; bool flag; for(i=0;i<20;i++) { flag=false; b=rand()%50; for (j=0;j<=i;j++) {... подробнее

Показать сообщение отдельно
vetal0007
28 / 28 / 1
Регистрация: 11.02.2012
Сообщений: 305

Не работает программа - "Построить класс для работы с односвязным списком." - C++

10.06.2013, 21:47. Просмотров 409. Ответов 0
Метки (Все метки)

Построить класс для работы с односвязным списком. Элемент списка – действительное число. Сформировать список, содержащий неубывающую последовательность чисел, и преобразовать его так, чтобы последовательность была невозрастающей. Для этого необходимо совершить переворот списка, т. е. такую переустановку указателей в списке, при которой элементы его следуют друг за другом в обратном порядке.

Ну вот с реверсом, пытался, пытался и никак не выходит, помогите пожалуйста.


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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <iostream>
#include <ctime>
#include <vector>
using namespace std;
 
class OdnSP {
protected:
    struct TNode
    {
        float value;
        TNode* next;
    };
    TNode* list;
public:
    OdnSP():list(NULL){}
    ~OdnSP()
    {
        Clear();
    }
void Push(float theValue)
{
    TNode* node = new TNode;
    node->value=theValue;
    node->next=list;
    list=node;
};
bool IsEmpty() const
{
    return (list==NULL);
}
float Top() const
{
    return list->value;
}
float Pop()
{
    float value=list->value;
    TNode* node=list;
    list=list->next;
    delete node;
    return value;
}
void Clear()
{
    while(!IsEmpty())
    {
        Pop();
    }
}
friend std::ostream& operator<<(ostream& theOS,const OdnSP&theList)
{
    OdnSP::TNode* node=theList.list;;
    while(node)
    {
        theOS<<node->value<<" ";
        node=node->next;
    }
    return theOS;
}
friend class TOperation;
};
 
class TOperation
{
protected:
    static void Swap(float& theA,float& theB)
    {
        float buff=theA;
        theA=theB;
        theB=buff;
    }
public:
    static void AppendRandom(OdnSP& list, unsigned count)
    {
        ::srand(::time(NULL));
        while (count--)
        {
            list.Push(::rand()%90+10);
        }
    }
    //static void Reverse(OdnSP::TNode*& list)
    //{
    //  OdnSP::TNode* first;
    //  OdnSP::TNode* rest;
    //  if (list==NULL) return;
    //  first=list;
    //  rest=first->next;
    //  if (rest==NULL) return;
    //  Reverse(rest);
    //  first->next->next=first;
    //  first->next=NULL;
    //  list=rest;
    //}
    };
float main()
{
    setlocale(LC_CTYPE,"rus");
    OdnSP list;
    cout<<"Реверс:"<<endl;
    TOperation::AppendRandom(list,20);
    cout<<"Односвязный список: "<<list<<std::endl;
    TOperation::Reverse(list);
    cout<<"Реверс: "<<list<<endl;
    cout<<endl;
    system("pause");
    return 0;
}
Работает все кроме Реверса

Добавлено через 17 минут
Все, разобрался.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru