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

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

Войти
Регистрация
Восстановить пароль
 
wwe2012
Заблокирован
#1

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

24.02.2011, 08:19. Просмотров 965. Ответов 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
#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++
Люди помогите не могу создать стек проблема в том что нельзя использовать классы и сижу как дурак в коде нужно только создание ввод и...

про 2 стека - C++
Обьясните на словах, каким образом: 1.вводим стек первый 2.если мое условие - вводим во второй Вопрос: Каким образом реализовать...

Формирование стека - C++
Доброго дня. Возникли следующие вопросы , void push(stac **top ,int d){ // 1. Две ** означают указатель на динамическую...

два стека - C++
#include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; #include &lt;ctype.h&gt; #include &lt;vcl.h&gt; #pragma hdrstop #include &quot;stack.h&quot; #include...

Сортировка стека - C++
Пытаюсь сортировать стек, но ничего не выходит, помогите пожалуйста #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;stack&quot; ...

Использование стека - C++
Очереди, стеки В текстовом файле записано без ошибок логическое выражение следующего вида: &lt;лог.выр.&gt;::=true | false | !&lt;лог.выр.&gt; |...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
591 / 559 / 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     Класс стека
Ответ Создать тему
Опции темы

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