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

Класс стека - C++

Восстановить пароль Регистрация
 
wwe2012
Заблокирован
24.02.2011, 08:19     Класс стека #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 <memory.h>
#ifndef CLstStack_H_20081118
#define CLstStack_H_20081118
 
 
 
///  Объявление  класса
class CLstStack         
{
public:
        /// тип хранимых значений
    typedef double ValueType; 
         
\\ Конструктор стека
        CLstStack()
        {
                ptop = new (List); 
                (*ptop).prev=0;
        }
      
     CLstStack(CLstStack S); //конструктор копирования 
     CLstStack(char c; int count=1); //конструктор с параметром
 
        //Деструктор стека
 
    ~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;//указатель на конец списка
char & operator [](int);
        char & operator + (int);//прегрузка опертора +
        char & operator -(int); //прегрузка опертора -
        char & operator = (int);
        char & operator ==(int);
        char & operator > (int);
        char & operator <<(int);
 
};
 
 
#endif
Можети проверить где ощибки устранить их. здесь точно не хватает дружеских класов можети мне помож ич создать. Буду очень благодарен за помаш. мне это через неделу здать надо а на двух работах полный завал. нет свободного время что бы дописать и устранить эти ощибки.

Добавлено через 19 часов 47 минут
Кто то мне поможить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2011, 08:19     Класс стека
Посмотрите здесь:

C++ Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести эталонный символ.
C++ Класс стека
C++ Основы ООП. Создание стека через класс
C++ Класс домов и класс улиц для учета поступлений квартплаты. Массив
Создать класс для работы со стеком. Элемент стека – действительное число C++
Удалить элемент из стека по условию и добавить элемент в начало стека C++
C++ Ошибка в выводе данных, класс выводит правильно, а класс в классе - нет
Класс итератор для стека C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
24.02.2011, 10:33     Класс стека #2
вот сам класс стека
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
class CMyStack
{
public:
    CMyStack();
    ~CMyStack();
    void Push(int d);
    int Pop();
    bool isEmpty();
    void Print();
    
private:
    struct Node
    {
        int d;
        Node *p;
    };
 
    Node *top;
};
 
CMyStack::CMyStack():top(NULL)
{
    
}
 
void CMyStack::Push(int d)
{
    Node *pv = new Node;
    pv->d = d;
    pv->p = top;
    top = pv;
}
 
int CMyStack::Pop()
{
    if (isEmpty())
    {
        return -1;
    }
    int temp = top->d;
    Node *pv = top;
    top = top->p;
    delete pv;
    return temp;
}
 
 
bool CMyStack::isEmpty()
{
    return top ? false : true;
}
 
void CMyStack::Print()
{
    while (top)
    {
        std::cout << Pop() << ' ';
    }
 
    std::cout << std::endl;
}
 
CMyStack::~CMyStack()
{
    while (top)
    {
        Node *pv = top;
        top = top->p;
        delete pv;
    }
 
}
wwe2012
Заблокирован
24.02.2011, 13:38  [ТС]     Класс стека #3
Цитата Сообщение от panicwassano Посмотреть сообщение
вот сам класс стека
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
class CMyStack
{
public:
    CMyStack();
    ~CMyStack();
    void Push(int d);
    int Pop();
    bool isEmpty();
    void Print();
    
private:
    struct Node
    {
        int d;
        Node *p;
    };
 
    Node *top;
};
 
CMyStack::CMyStack():top(NULL)
{
    
}
 
void CMyStack::Push(int d)
{
    Node *pv = new Node;
    pv->d = d;
    pv->p = top;
    top = pv;
}
 
int CMyStack::Pop()
{
    if (isEmpty())
    {
        return -1;
    }
    int temp = top->d;
    Node *pv = top;
    top = top->p;
    delete pv;
    return temp;
}
 
 
bool CMyStack::isEmpty()
{
    return top ? false : true;
}
 
void CMyStack::Print()
{
    while (top)
    {
        std::cout << Pop() << ' ';
    }
 
    std::cout << std::endl;
}
 
CMyStack::~CMyStack()
{
    while (top)
    {
        Node *pv = top;
        top = top->p;
        delete pv;
    }
 
}
Спасибо но я тут не вижу дружеских функций и перегрузку операторов. Можеш доделать очень надо. мне через 5дней здать надо выручай

Добавлено через 49 секунд
и нету констуктора по умолчанию
Yandex
Объявления
24.02.2011, 13:38     Класс стека
Ответ Создать тему
Опции темы

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