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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.63
gudzon
0 / 0 / 0
Регистрация: 07.03.2011
Сообщений: 7
#1

Реализация стека в динамическом массиве - C++

13.04.2011, 23:59. Просмотров 4070. Ответов 2
Метки нет (Все метки)

Условие такое:
Разработать шаблон класса для работы со стеком, реализованным в динамическом массиве. Для разрабатываемого шаблона обязательно определите:
a. конструктор по умолчанию;
b. конструктор копирования;
c. деструктор;
d. оператор присваивания;
e. вставку элемента в стек ;
f. удаление элемента из стека ;
g. просмотр элемента в вершине стека без его удаления,
h. просмотр всех элементов, находящихся в стеке.
i. Пользовательский тип – железнодорожный вагон. На станцию подается состав из красных и зеленых вагонов. Они перемешаны. Используя шаблон переформировать его на состав, в котором чередуются вагоны разного цвета.

Тестирование шаблона контейнерного класса выполнить
• для встроенных типов int и char*,
• для пользовательского типа.

Шаблонный класс должен обрабатывать исключения.
Помогите для начала хотя бы разобраться, как реализуется стек в динамическом массиве, а то чет совсем не могу въехать с чего даже начинать... может у кого есть код похожей проги работающей с таким стеком...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2011, 23:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация стека в динамическом массиве (C++):

Реализация стека на массиве и динамическом распределении памяти - C++
всем привет, дано такое задание: Используя стек, решить следующую задачу. Напечатать каждое слово текстового файла Т в обратном...

Не могу найти ошибку с подсчетом суммы элементов в интервале[a,b] в динамическом одномерном массиве массиве. - C++
#include <iostream> #include <conio.h> #include <stdlib.h> #include <time.h> #include <iomanip> #include <stdio.h> #include...

Разработать программу, реализующую алгоритм стека (20 элементов). Задача решается в двух вариантах: статическом и динамическом - C++
Разработать программу, реализующую алгоритм стека (20 элементов). Задача решается в двух вариантах: статическом (на основе массива...

Сдвиг в динамическом массиве - C++
Добрый день) Сразу оговорюсь что честно пользовался поиском. Если у меня проблемы со зрением - прошу указать соответствующую тему. Спасибо....

Ошибка в динамическом массиве - C++
Проблема при добавлении сотрудника. Первый сотрудник добавляется просто прекрасно, а вот при записи второго сотрудника выдает ошибку и...

Реализация стека - C++
вот такие ошибки при реализации: stack.h(26) : error C2953: 'Stack' : class template has already been defined liststack.h(10) : error...

2
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
14.04.2011, 00:05 #2
gudzon, Списки, стеки, очереди
0
gudzon
0 / 0 / 0
Регистрация: 07.03.2011
Сообщений: 7
14.04.2011, 19:56  [ТС] #3
Ну, я так понял, что мне надо сделать шаблон класса, полями в котором будут обычный динамический массив и индекс массива, в котором находится вершина стека. Вот написал небольшую часть программы, пока только с конструкторами и деструкторами:
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
#include <cstdio>
#include <stdlib.h>
template <class Type> class stack {
    int top, size;
    Type *s;
public:
    stack(int asize = 10): top(0) {
        size = asize;
        s = new Type[size];
    }
    stack( const stack & obj ) {
        size = obj.size;
        s = new Type[size];
        for (int i = 0; i < size; i++)
            s[i] = obj.s[i];
        top = obj.top;
    }
    ~stack(){
        delete [] s;
    }
    void push(Type var){
        top++;
        s[top] = var;
    }
    Type pop(){
        Type var = s[top];
        top--;
        return var;
    }
    int GetSize() {return size;}
    int GetTop() {return top;}
};
int main(){
    stack<int> stack(9);
    for (int i = 0; i < stack.GetSize(); ++i)
        stack.push(i);
    for (int i = 0; i < 9; ++i)
        printf("%d ", stack.pop());
    system("PAUSE");
}
Помогите разобраться, почему в самом конце при освобождении памяти в деструкторе вылазит Debug Error.

Добавлено через 1 час 57 минут
Всё, уже разобрался.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2011, 19:56
Привет! Вот еще темы с ответами:

Реализация стека - C++
Подскажите, как создать класс, который реализует стек? А также методы включения и выключения элементов?

Реализация стека - C++
Всем доброго времени суток! Нашел в на просторах интернета исходник реализации стека. Но не совсем понятен код. Что бы понять - я...

Реализация стека - C++
Написать программу, реализующую стек с информацией о сотрудниках и отображающую стек в порядке возрастания возраста сотрудника

Реализация стека - C++
Реализация стека (добавить 1 элемент, вытащить 1 элемент в стеке, определить, когда стек будет пустой). Помогите пожалуйста написать...


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

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

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