Как сделать программу на C++, которая будет хранить имена (string или char) с помощью стека
Как сделать программу на C++, которая будет хранить имена (string или char) с помощью стека:
Например: вывод будет выглядеть следующим образом
Введите имя: Джон
Стек::: Джон
Введите имя: Алиса
Стек::: Джон Элис
Введите имя: Джоанна
Стек::: Джон Элис Джоанна
Введите имя: Дэйв
Стек::: Джон Элис Джоанна Дэйв
Введите имя: Джейк
Стек::: Джон Элис Джоанна Дэйв Джейк
по крайней мере 5 раз пользователь будет вводить имена
Что я уже пробовал:
Я пробовал этот вариант, но этот выводит только целое число, и мне нравится менять его на строку, которая может читать имена..
#include <iostream> using namespace std; const int STACK_SIZE = 5; //prototype bool isEmpty(int); bool isFull(int , int); void push(int[], int&, int); void print(int[], int); int pop (int[], int&); int main() { int top =-1; int stack[STACK_SIZE]; int value; do{ cout<<"Enter an integer:"; cin>>value; push(stack, top ,value); print (stack, top); }while(!isFull(top,STACK_SIZE)); while(!isEmpty(top)) cout<< pop(stack, top)<<""; cout<<endl; system ("pause"); } bool isEmpty(int top) { return (top== -1); } bool isFull(int top, int size) { return(top ==size-1); } void push(int stack[], int& top, int value) { top++; stack[top] = value; } int pop(int stack[], int& top) { int value = stack[top]; top--; return value; } void print(int stack[], int top) { cout<<"Stack:::"; for(int i=0;i<=top;i++) cout<<stack[i]<<" "; cout<<endl; }
выход:
Введите целое число:2
Стек::: 2
Введите целое число:2
Стек::: 2
Введите целое число:2
Стек::: 2
Введите целое число: 6
Стек::: 2 6
Введите целое число: 7
Стек::: 2 6 7
Введите целое число: 9
Стек::: 2 6 7 9
Введите целое число: 3
Стек::: 2 6 7 9 3
Пожалуйста, помогите мне, мне это нужно срочно ..
Richard MacCutchan
В интернете есть много примеров, объясняющих, как управлять простым стеком. Также извините, но это не срочно.
Philippe Mori
В чем проблема замены int
около string
в соответствующих местах?