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

Создание стэков на С++ - C++

Восстановить пароль Регистрация
 
Аким
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 2
23.05.2014, 03:02     Создание стэков на С++ #1
Всем привет. У меня практическое задание по структурам данных.
Нужно написать прогу которая создаст стэк из 3 элементов и трансформирует ее в стэк из 5 элементов используя методы push, pop. Есть ограничения, прога должна отображать: 1.первоначальный вид стэка(3 элемента)
2.конечный вид(из 5 элементов).
Вот что я сам смог сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream> 
#include<stack> 
using namespace std; 
 
int main(){ 
stack<int>mystack; 
for(int i=0;i<5;i++)mystack.push(i); 
cout<<"popping out elements..."; 
while(!mystack.empty()){ 
cout<<""<<mystack.top(); 
mystack.pop(); 
} 
cout<<endl; 
return 0; 
}
Сидел, почитал, не помогло. Их я по просту не знаю, к сожалению а работу сегодня сдавать.
Отзовитесь кто знаком с такими задачками.
Спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2014, 03:02     Создание стэков на С++
Посмотрите здесь:

Создание кода программы с нуля!! создание кода C++ C++
C++ 2-связный список на основе 2х стэков

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
uhx
 Аватар для uhx
56 / 56 / 6
Регистрация: 11.07.2013
Сообщений: 300
23.05.2014, 03:55     Создание стэков на С++ #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Аким Посмотреть сообщение
Вот что я сам смог сделать:
#include<iostream>
#include<stack>
using namespace std;
int main(){
stack<int>mystack;
for(int i=0;i<5;i++)mystack.push(i);
cout<<"popping out elements...";
while(!mystack.empty()){
cout<<""<<mystack.top();
mystack.pop();
}
cout<<endl;
return 0;
}

И что это?)))
Сейчас код нормальный напишу)

Добавлено через 10 минут
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
#include <iostream>
 
using namespace std;
 
struct stack{
    int info;
    stack *next;
};
 
void push(stack* &st, int inf){
    stack *temp = new stack; // Выделяем память
    temp->info = inf; // Закидываем число
    temp->next = st; // Указатель на текущую верхушку
    st = temp; // Двигаем верхушку на новый элемент
}
 
void pop(stack *st){
    stack *temp = st;
    while(temp){
        cout<<temp->info<<" "; // Выводим стек
        temp = temp->next;
    }
    cout<<endl;
}
 
void clean(stack* &st){
    for(stack *temp = st->next;st->next;temp = st->next){
        delete st;
        st = temp;
    }
}
 
int main(){
    setlocale(0, "");
    stack *st = NULL;
    push(st, 1);
    push(st, 2);
    push(st, 3);
    pop(st);
    push(st, 4);
    push(st, 5);
    pop(st);
    system("pause > nul");
    clean(st);
}
Как-то так.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.05.2014, 10:44     Создание стэков на С++ #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
#include <iostream>
#include <stack>
 
template <typename T>
void print_stack(std::stack<T> st, std::ostream& os = std::cout)
{
   while (!st.empty()) {
      os << st.top() << " ";
      st.pop();
   }
   os << std::endl;
}
 
int main()
{
   std::stack<int> stack{{4, 6, 7}};
   print_stack(stack);
   
   stack.push(100);
   stack.push(200);
   print_stack(stack);
 
   return 0;
}
Tulosba
23.05.2014, 11:05
  #4

Не по теме:

DiffEreD, жалко, что нельзя принтануть стек не прибегая к копированию или его опустошению.

Аким
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 2
23.05.2014, 11:43  [ТС]     Создание стэков на С++ #5
Спасибо большое! Отличный код)))
Надо бы мне посерьёзнее отнестись к этим стэкам.
Yandex
Объявления
23.05.2014, 11:43     Создание стэков на С++
Ответ Создать тему
Опции темы

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