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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
zewer
1380 / 1069 / 114
Регистрация: 07.01.2011
Сообщений: 7,019
Завершенные тесты: 1
#1

вопрос по стеках (stack) - C++

06.11.2011, 01:12. Просмотров 1468. Ответов 17
Метки нет (Все метки)

Задание:
Реализовать стек с помощью массива data [N], в котором последний элемент массива, а не отдельная переменная, используеться для хранения указателя вершины стека, а остальные элементы массива могут содержать элементы самого стека. После обработки всей заданной входной последовательности превратить полученный стек так, чтобы он не содержал одинаковых элементов, идущих подряд (т.е. вместо каждой последовательности одинаковых элементов должен остаться только один элемент, например, из стека с содержанием 22230115555 надо получить стек с содержанием 23 015).

кто может, помогите по написанию кода, я вот придумал такой алгоритм, но в причине отсуствие синтаксисчних навиков, мне тяжело его реализировать:
например наш стек содержит такие елементи 22230115555, помня что в стеку елементи идут с права на лево, тоесть так:
5
5
5
5
1
..
ми будем перемещать елементи в другой стек, при умове, что если встретиться елемент, которий равний предидущему, то его ми перекидивать не будем, так ми получим стек с такими елементами
5
1
0
3
2
дальше ми опять перекинем назад, чтоб получился стек с елементами:
2
3
0
1
5
вот и все, ето мой алгоритм, кто хорошо знает синтаксис, наберите плс, буду благодарен, в доказ того что я не тупой, дам то что набрал сам, тоесть проверял роботу стека:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stack>
#include <iostream>
using namespace std;
int main()
{
setlocale (LC_ALL, "");
int i = 0;
int value;
const int x_size = 11;
stack< int > intStack;
intStack.empty();
int x[x_size]={4, 4, 4, 4, 5, 5, 2, 2, 2, 1, 1}; // заповнення стеку
for ( ; i < x_size; ++i )
    intStack.push( i[ x ] );
 
intStack.pop();
value = intStack.size();
 
 
cout << "результат " << value << endl;
}
Наперед спасибо, я понимаю что очень многа текста

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

Есть ли связь между STL-stack и stack - высокопроизводительная память? - C++
Куча источников, как всегда много отсебятины, в общем я запутался...

Указатели в стеках - C++
Есть структура стека есть две функции - добавления элемента в стек и удаления всего стека ЗАДАЧА - нужно сделать копию первого стека, с...

Подсчитать общее число элементов в стеках - C++
Здравствуйте. Пожалуйста, как можно проще, не используя классы, помогите решить задачу: Даны два стека,содержащие последовательности...

Ошибка: "Unhandled exception: Stack cookie instrumentation code detected a stack-based buffer overrun" - C++
Не могу понять почему значение ChoiceOfPlayer меняется и почему NumberOfRow и NumberOfColumn всегда последние значение цикла. Помогите...

как проинициализировать std::stack<const int> obj ( std::stack<int>{} ); - C++
добрый день. вопрос в коде: http://rextester.com/VCVVML6656 #include &lt;iostream&gt; #include &lt;stack&gt; //-std=c++14...

Очередь, теория. Очередь на шести стеках - C++
Здравствуйте, пытаюсь побольше найти информации про очереди и их применение в программировании. Из того что я нашел, все описывается лишь...

17
LosAngeles
Заблокирован
07.11.2011, 18:49 #16
Цитата Сообщение от Chelioss Посмотреть сообщение
А ничего, что стэк не поддерживает операцию индексации?
значит снова возвращаемся к итераторам, или пишем сишной структуркой, там инкапсуляции нет, можешь просматривать стек хоть наискосок
0
Chelioss
181 / 181 / 4
Регистрация: 08.01.2011
Сообщений: 1,137
07.11.2011, 19:00 #17
Цитата Сообщение от LosAngeles Посмотреть сообщение
значит снова возвращаемся к итераторам
Вы же сами сказали, что итераторы не поддерживаются.
Цитата Сообщение от LosAngeles Посмотреть сообщение
или пишем сишной структуркой, там инкапсуляции нет, можешь просматривать стек хоть наискосок
В смысле самому что ли стэк реализовать?

Загвоздка в том, что в задании, которое дали в ВУЗе, надо сделать собственный стэк и использовать в программе свой и стандартный стэк. Со своим как раз проблемы нет.
0
zek921
9 / 9 / 2
Регистрация: 30.04.2011
Сообщений: 130
Записей в блоге: 1
07.11.2011, 19:14 #18
ой ,та но здоровье ,вытягиваем содержимое поштучно куда - нибудь ,выполняем какие - нибудь действия ,запихиваем обратно (учитываем ,что берем с конца ,получим последовательность обратную начальной). Я понимаю ,правила и всё такое ,но в в реализации ,всё-же , возможность доступа произвольному (ReadOnly) элемента стека очень полезна .Мне помогала .Когда нужно работать с объектом как со стеком я выполняю пуш и поп ,больше от стека ,как хранилища особым образом организованного ,ничего и не требуется .Хз ,не очень выразил свою мысль ,наверное ,сорри .

Добавлено через 1 минуту
C++
1
2
int len = stack.Length;
for(int i =0;i<len;i++){cout<<stack.Pop();}

не удаляя - вытащенный элемент кидаем в другой стек .
Потом заполняем первый на основе данных нашего вспомогательного

Добавлено через 3 минуты
Натупил ,забыл что речь идет о стандартной реализации стека ,думал о стеках в общем и своем варианте реализации


length to getLen как заменить думаю и так понятно
1
07.11.2011, 19:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2011, 19:14
Привет! Вот еще темы с ответами:

stack - C++
не могу норм прокомпилировать прогу, вот код, подскажите что не так! #include &lt;stack&gt; #include &lt;iostream&gt; int main() { const int...

Stack overflow. - C++
У меня в программе есть реверсивная функция (много параметров) она вызывает себя очень много раз. Во время выполнения программы возникает...

Stack overflow - C++
Написал #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include &lt;math.h&gt; #include &lt;iomanip&gt; #include...

Stack overflow - C++
Реализовал структуру данных стек на связном списке, очистку решил возложить на деструкторы узлов, т.е. каждый вызов деструктора узла...


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

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

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