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

Класс стека на связном списке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Borland C 3.1 и Windows7x64 http://www.cyberforum.ru/cpp-beginners/thread66141.html
Подскажите пожалуйста как мне запустить С под х64 семеркой. Выдает ошибку по поводу разрядности системы
C++ Циклический сдвиг битов 2 Помогите пожалуйста решить вопрос. Необходимо реализовать на С++ операцию циклического сдвига битов влево и вправо. Поиском наткнулся на это: Циклический сдвиг битов. Но это не совсем то, что мне нужно. Имеем переменную "unsigned char bitm" со значением "0b100000", кол-во битов постоянное. Как мне переместить последний бит в начало или первый бит в конец? Добавлено через 19 минут Примерно... http://www.cyberforum.ru/cpp-beginners/thread66132.html
Отслеживание нажатия клавиш C++
Помогите решить Напишите программу, печатающие коды, генерируемые при нажатии любой клавиши или комбинации клавиш. Используйте функцию getch () (заголовочный файл conio.h). Данная функция трактует нажатие отельной клавиши или комбинации клавиш как генерацию одно- или двухбайтового кода. Если генерируется двух байтовый код, то первый байт нулевой. Примечание не знаю зачем дано: Строка...
Найти след матрицы, суммируя элементы одномерного массива C++
Для заданной квадратной матрицы сформировать одномерный массив из её диагональных элементов. Найти след матрицы, суммируя элементы одномерного массива. Преобразовать исходную матрицу по правилу: четные строки разделить на полученное значение, нечетные оставить без изменения.
C++ Вычисление выражений http://www.cyberforum.ru/cpp-beginners/thread66083.html
Помогите пожалуйста разобраться с следующей задачей. Написать это нужно на языке Си (Linux). Необходимо выполнить вычисление трех выражений. Вычисление выполняется до тех пор, пока очередное слагаемое больше наперед заданного значения eps. Значения x и eps задаются с клавиатуры. Для работы с программой необходимо разработать интерактивное текстовое меню на основе оператора выбора. Программа...
C++ Перевод числа в строку Помогите пожалуйста решить задачу по программированию. Напишите функцию itox (int n, char s), которая переводит целое n в строку s, представляющее число n в шестнадцатеричном виде. подробнее

Показать сообщение отдельно
xolodilnik
Сообщений: n/a
22.11.2009, 13:40     Класс стека на связном списке
Попытался написать программу:

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
/**
\file CLStack.h
\заголовочный файл статической библиотеки класс стека на связном списке
*/
 
#include <memory.h>
#ifndef CLstStack_H_20081118
#define CLstStack_H_20081118
 
 
 
///  Объявление  класса
class CLstStack         
{
public:
    /// тип хранимых значений
    typedef double ValueType; 
         
\\ Конструктор стека
    CLstStack()
    {
        ptop = new (List); 
        (*ptop).prev=0;
    }
 
 
    //Деструктор стека
 
    ~CLstStack()         
    { 
        if(ptop!=0)
        {
            if((*ptop).prev!=0)
            {
                List *ptr;
                ptr=ptop;
                ptop=(*ptop).prev;
                delete ptr;
            }
        delete ptop;
        }
    }
 
 //Проверить стек на пустоту
    bool isEmptyStack();
 
  //Вытолкнуть верхний элемент стека
    bool popStack();
 
   //Втолкнуть элемент в стеk
 
    bool pushStack(ValueType value);
 
   // Получить значение верхнего элемента стека
    bool getTopStack(ValueType* pValue);
 
private:
    struct List
    {
        List*prev;//Указатель на предыдущий элемент
        ValueType elem;  // элементы
    }* ptop;//указатель на конец списка
 
};
 
#endif // CLisStack_H_20081118
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
/**
\CLStack.cpp
\реализация функций  статической библиотеки класс стека на связном списке
*/
 
#include "CLStack.h"
#include <iostream>
#include <memory.h>
 
 
//Проверка стека на пустоту
bool
CLstStack::isEmptyStack()           
{
    if ((*ptop).prev==0)
    {
        return true;
    }
    else
    {
        return false;   
    };
}
 
 
///Вытолкнуть верхний элемент стека
bool
CLstStack::popStack()   
{
    if(ptop!=0)
    {
        List *ptr;
        ptr=ptop;
        ptop=(*ptop).prev;
        delete ptr;
        return true;
    }
    else
    {
        return false;
    };
}
 
 
///Получить значение верхнего элемента стека
bool
CLstStack::getTopStack(ValueType* pValue) 
{   
    if(ptop!=0)
    {
        *pValue=(*ptop).elem;
        return true;
    }
    else
    {
        return false;
    };
}
 
///Втолкнуть элемент в стек
bool
CLstStack::pushStack(ValueType value) 
{
    List *ptr;
    ptr = new (List); 
    (*ptr).prev=ptop; 
    (*ptr).elem =value; 
    ptop=ptr;
    return true;
}
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
/**
\test.cpp
\ тестирование библиотеки работы с классом стека на связном списке
*/
 
#include <iostream>
#include "CLStack.h"
 
int
main()
{
    using namespace std;
    CLstStack Stack();
 
 
///проверим стек на пустоту
cout << "Let's call isEmptyStack"
<< ",result is " <<  Stack.isEmptyStack() << "\n\n";
 
///продемонстрируем работу стека для вталкивания элемента
CLstStack::ValueType value(0);
cout << "Let's call pushStack(" << value << ")"
<< ", result is "<< Stack.pushStack(value) << "\n\n";
 
///Продемонстрируем работу непустого стека для проверки на пустоту
cout << "Let's call isEmptyStack()"
<< ", result is " << Stack.isEmptyStack() << "\n\n";
 
 
///продемонстрируем работу стека для выталкивания элемента
value = 1.0;
cout << "value = " << value << "\n" ;
cout<< "Let's call getTopStack(, &value)"
<< ", result is " << Stack.getTopStack(&value);
cout<< ", value = " <<value << "\n\n";
 
cout << "Let's call popStack(val)"
<< ",result is " <<Stack.popStack()<<"\n";
 
///продемонстрируем работу пустого стека для выталкивания элемента
cout << "Let's call popStack(val)"
<< ",result is " <<Stack.popStack()<<"\n";
 
///Продемонстрируем работу пустого стека для проверки на пустоту
cout << "Let's call isEmptyStack()"
<< ", result is " << Stack.isEmptyStack() << "\n\n";
 
return 0;
}
Результат компиляции:
C++
1
2
3
4
5
6
7
8
9
Compiling...
test.cpp
e:\testlib\test.cpp(21) : error C2228: left of '.isEmptyStack' must have class/struct/union
e:\testlib\test.cpp(26) : error C2228: left of '.pushStack' must have class/struct/union
e:\testlib\test.cpp(30) : error C2228: left of '.isEmptyStack' must have class/struct/union
e:\testlib\test.cpp(37) : error C2228: left of '.getTopStack' must have class/struct/union
e:\testlib\test.cpp(41) : error C2228: left of '.popStack' must have class/struct/union
e:\testlib\test.cpp(45) : error C2228: left of '.popStack' must have class/struct/union
e:\testlib\test.cpp(49) : error C2228: left of '.isEmptyStack' must have class/struct/union
Помогите разобраться, в чем ошибка.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru