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

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

Войти
Регистрация
Восстановить пароль
 
bestpalyer1
-1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 47
#1

Обойти стек, не удаляя вершин - C++

26.05.2013, 20:04. Просмотров 189. Ответов 0
Метки нет (Все метки)

Ребят, помогите разобраться!

Можно ли обойти стек не удаляя вершин?
Вроде этого?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void printstack(stack<int>l)
{
    if(l.empty())
    {
        cout<<"Лист пуст"<<endl;
        return;
    }
 
    for(int i=0;i!=l.size();++i)
    {
        cout<<"Элемент: "<<l.top()<<endl;
        *(l.top())-=1; //не корректно изначально
    }
}
Или только так?:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void printstack(stack<int>l)
{
    stack<int> q;
    q=l;
    if(l.empty())
    {
        cout<<"Лист пуст"<<endl;
        return;
    }
 
    while(!(l.empty()))
    {
        cout<<"Элемент: "<<l.top()<<endl;
        l.pop();
    }
    l=q;
}
Если работать по 2 варианту, то нужно удалять весь первоначальный стек, чтобы не "болталась" лишняя память?
Или как-то можно реализовать данную функцию без использования дополнительного стека?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2013, 20:04     Обойти стек, не удаляя вершин
Посмотрите здесь:

Объединить несколько разных структур в одну, не удаляя исходные C++
C++ Сжать последовательность чисел,удаляя из неё все нули
C++ Отредактировать предложение, удаляя из него лишние пробелы
Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки C++
C++ Из двух стеков с упорядоченными по возрастанию элементами создать новый стек с упорядоченными элементами, не удаляя исходные стеки
Отредактировать предложение, удаляя из него лишние пробелы C++
Убрать элементы из списка с нечетным числом, не удаляя C++
C++ Считывание строки из потока, не удаляя символ-ограничитель
C++ Получить из строки палиндром, удаляя наименьшее количество символов
Как добавить в файл значение, не удаляя старое? C++
C++ Отредактировать предложение, удаляя все слова на четных позициях.
Преобразовать двумерный массив в одномерный, удаляя каждую вторую строку C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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