Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
0 / 0 / 3
Регистрация: 28.10.2012
Сообщений: 157

Стеки

03.11.2012, 15:15. Показов 5005. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализовать программу, в которой будут использоваться стеки (магазинный и кольцевой) и очередь. В самих программах реализовать такие функции:
заполнение стека(очереди) вручную, удаление и добавление элементов, вывод содержимого на экран, очистка стека (очереди).
Смотрел и читал на форуме о стеках но не понял на чем их применять или они сами по себе?
Можете на коде объяснить своими словами как работает стек?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2012, 15:15
Ответы с готовыми решениями:

Стеки С++
Добрый вечер.Задание следующие нужно сделать добавление в стек после елемента L.Дано 2 стека X Y из них добавить верхушку с X в Z до...

Стеки на С!
Создать стек для символов. Максимальный размер стека вводится с экрана. Создать функции для ввода и вывода элементов стека. Добавлять...

стеки
Здравствуйте. Я создал шаблон класса стек. Как мне перегрузить операторы -- и += для извлечение и добавление элемента в стек. И нужно...

47
 Аватар для dederkay
46 / 46 / 4
Регистрация: 08.12.2010
Сообщений: 161
04.11.2012, 23:43
Студворк — интернет-сервис помощи студентам
приведите плз весь код, и еще какая студия или компилятор?

Добавлено через 47 секунд
какой чар? тут же шаблон)
0
0 / 0 / 3
Регистрация: 28.10.2012
Сообщений: 157
04.11.2012, 23:48  [ТС]
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#pragma once
#include <iostream>
using namespace std;
template<class NODETYPE>
class Stack
{
protected:
    int count;//кількість
    struct Node//структура вузол
    {
        NODETYPE data;//дані шаблонного типу
        Node* prev;//покажчик на попередній елемент
        NODETYPE& getData(void)//функція що повертає сслику на дані
        {
            return data;// повертаємо дані
        }
    };
    Node* bottom;//покажчик на вершину стеку
public:
    Stack(void):count(0), bottom(0)//облнуляємо змінні в констукторі
    {
    }
    ~Stack(void)//дестуктор
    {
        clear();//викликаємо функцію очищення
    }
    
   void push(NODETYPE someData)
    {
        Node* Temp = new Node;
        Temp->data = someData;
        Temp->prev = bottom;
        
        bottom = Temp;
        if(bottom->prev && !bottom->prev->prev)
        {
            bottom->prev->prev = Temp;
        }
        count++;
    }
    void pop(void)//функція видалення елементу з вершини
    {
        if(!bottom)//у разі коли вершини не існує
        {
            cout<<"Err. Stack is empty."<<endl;//виводимо на екран помилку
            return;//виходимо з функції, не повертаючи значення
        }
        Node* pTemp = bottom->prev;//створюємо новий елемент який зберігає в собі елемент на рівень нижчий вершини
        delete bottom;//видаляємо вершину
        bottom = pTemp;//нова вершина рівна тому елементу
        count--;//декрементуємо лічильник
    }
    void clear(void)//функція очищення
    {
        while(bottom)//циклічно виконуємо доки існую вершина
        {
            Node* delPtr = bottom->prev;//створюємо новий елемент який зберігає в собі елемент на рівень нижчий вершини
            delete bottom;//видаляємо вершину
            bottom = delPtr;//нова вершина рівна тому елементу
        }
        count = 0;//обнуляємо лічильник
        bottom = NULL;//обнуляємо вершину
    }
    NODETYPE getBottomData(void)const//функція що повертає дані з вершини
    {
        return bottom->data;//повертаємо дані вершини
    }
    int rCount(void)const//функція що повертає кількість елементів
    {
        return count;//повертаємо лічильник(поточна кількість)
    }
    friend ostream& operator<<(ostream &o, const Stack &obj)//оператор запису в поток
    {
        if(!obj.bottom)//у разі коли обєкту не існує
        {
            o<<"Err. Stack is empty."<<endl;//записуємо в поток меседж про помилку
            return o;//повертаємо ссилку на поток для того щоб можна було робити так cout<<stack<<"lolwto?";
        }
        o<<"\n";//записуємо в поток перехід на новий рядок
        Stack::Node* p = obj.bottom;//створюємо новий покажик який зберігає в собі вершину переданого в оператор обєкту
        for(unsigned int i = 3; p && i > 0; p = p->prev)//циклічно перебраємо всі елементи покажчика
        {
            o<<" * "<<p->data<<" * "<<endl;//записуючи в поток виведення дані з зірочками по сторонам і переходами на новий рядок
            --i;
        }
        o<<endl;//перехід на новий рядок
        return o;
    }
    friend istream& operator>>(istream &i, Stack &obj)//оператор зчитування з потоку
    {
        Stack::Node* b = obj.bottom;//створюємо новий покажик який зберігає в собі вершину переданого в оператор обєкту
        for(; obj.bottom; obj.bottom = obj.bottom->prev)//циклічно перебраємо всі елементи об'єкту
        {
            cout<<"Insert stack data: ";//виводимо на екран "введіть дані"
            i>>obj.bottom->getData();//зчитуємо  потоку дані записуючи їх в дані елементу стеку
        }
        obj.bottom = b;//відновлюємо покажчик на голову
        return i;//повертаємо ссилку на поток
    }
};
не знаю что не так

Добавлено через 22 секунды
студия 2010
0
 Аватар для dederkay
46 / 46 / 4
Регистрация: 08.12.2010
Сообщений: 161
04.11.2012, 23:59
мде, вот вам и разница в студиях, 2012 не ругается и довольно приятно отвечает на все действия. Хотя новый стандарт поддерживает не полностью. Если доберусь до ноутбука помогу, ибо тут у меня только 8 и 12. Сейчас на 8 проверю.

Добавлено через 3 минуты
восьмая тоже все норм) остается добраться до 10 но по случаю у меня нет, только на ноуте, а щас дотсупа к нему нет)
1
0 / 0 / 3
Регистрация: 28.10.2012
Сообщений: 157
05.11.2012, 20:37  [ТС]
ну ща попробую скачать 2012 и посмотрю

Добавлено через 20 часов 37 минут
да работает, правда как то странно, я так понял надо сделать так что бы элементы можно было добавлять с начала и с конца? и также удалять?
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
05.11.2012, 21:43
И что это тогда за стек такой будет? Называйте его своим именем: дек.
0
 Аватар для dederkay
46 / 46 / 4
Регистрация: 08.12.2010
Сообщений: 161
05.11.2012, 22:08
Цитата Сообщение от Liberation Посмотреть сообщение
добавлять с начала и с конца? и также удалять?
ТС вам же нужен кольцевой стек. Зачем нужно делать дек? или задача все таки сделать дек? Тогда старайтесь правильно формулировать задачу, или проштудируйте хотя бы вики по данному вопросу)
0
0 / 0 / 3
Регистрация: 28.10.2012
Сообщений: 157
05.11.2012, 23:14  [ТС]
так значит последний пример и есть кольцевой ? чет я не понял как он работает, просто удаляешь верх и второй элемент становится началом и концом?
0
 Аватар для dederkay
46 / 46 / 4
Регистрация: 08.12.2010
Сообщений: 161
05.11.2012, 23:20
ну поймите теперь он зациклен, формально начала или конца нет стек как кольцо, вот поставьте например вместо тройки в цикле вывода 20, но введите только 4 элемента в стек и вы увидите что элементы повторяются. Ну просто так же вы просто можете проверить на колцевость в вотче просмотрев куда указывает привиос каждого элемента, так вот вы никогда не достигнете конца ибо все будет повторятся много раз)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2012, 23:20

Стеки
Вот код как к первому стеку прикрипить 2 стек?????? #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; typedef struct el ...

Стеки
Помогите разобраться со стеками.Вылетает 3 ошибки при компеляции. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

Стеки
Здравствуйте, помогите пожалуйста осилить задачу. Задача: Вот то что я написал, а дальше что то никак не идет. #include...

Стеки
помогите пожалуйста вот что получилось, не могу довести до ума) может кто поможет) задание: Дано арифметическое выражение длинной до 20...

Стеки
Создать стек с числами в диапазоне от –50 до +50.Создать новый стек, в который поместить каждый третий элемент пер-вого стека.


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

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Новые блоги и статьи
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru