Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

24.02.2011, 08:19. Просмотров 1033. Ответов 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 минут
Кто то мне поможить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2011, 08:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс стека (C++):

Класс стека - C++
Здравствуйте!помогите создать класс стека, чтобы входные данные были из списка....как я понимаю, это должно быть в конструкторе или нет? ...

Класс итератор для стека - C++
Доброго времени суток! Обращаюсь к вам за помощью. Хоть сама в тему эту не совсем влилась, прошу гляньте код. Ругается, но я...

Основы ООП. Создание стека через класс - C++
Приветствую всех пользователей форума. Относительно недавно начал осваивать ООП. Было необходимо выполнить следующее задание : нужно...

Создать класс для работы со стеком. Элемент стека – действительное число - C++
Создать класс для работы со стеком. Элемент стека – действительное число. Применить класс для вывода возрастающих серий последовательности...

Структура стек (: добавить элемент в стек, удалить элемент из стека, получить значение с вершины стека, размер стека...) - C++
Всем привет,ребят помогите пожалуйста с лабой,вообще без понятия про стеки:( Может кто то делал,или встречался с таким заданием: ...

Удалить элемент из стека по условию и добавить элемент в начало стека - C++
Здравствуйте, помогите пожалуйста исправить(дописать) программы. 1). Нужно удалить элемент, находящийся в середине стека , если число...

2
panicwassano
592 / 560 / 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;
    }
 
}
0
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 секунд
и нету констуктора по умолчанию
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2011, 13:38
Привет! Вот еще темы с ответами:

Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести эталонный символ. - C++
Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Ввести...

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами - C++
Здравствуйте! Никак не могу продумать структуру этой программы. Проходим наследование, но я все равно не знаю, как его здесь применить. Как...

Отдельно класс данных, класс формул и главный класс - C++
Здравствуйте! У меня есть три вопроса. Первый вопрос. Скажите пожалуйста! Правильный ли это подход к созданию приложений :...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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