Стек
- одна из полезных структур данных. Для стека характерны такие операции
как вставлять и удалять данные, но выпалняются они только над самым
верхним элементом(вершиной стека). Такой порядок называется "первым
вошел, последним вышел".
struct stack
Теперь
создадим функцию reset задача которой инициализация. В ней нам достачно
переменной top присвоить значение -1. В качестве параметра ей будет
передоватся указатель на структуру (при использовании указателя для
доступа к членам структуры используется не ".", а оператор "->"). void reset(stack* st)
Так же нам нужны функции push(вставить) и pop(извлечь).
Теперь напишем функцию main, чтобы проверить нашу версию стека, функция будет печатать строку в обратном порядке.
Полностью текст программы должен выглядеть так:
Реалезуем стек для хранения символьных значений(букв), с помощью
структуры и нескольких функций. Для хранения данных мы создадим
структуру stak состоящую из массива s, хранящего наши данные, и
переменной top которая будет хранить номер верхнего элемента.
{
char s[1000];
int top;
};
{
st->top = -1;
}
void push(stack* st, char s)
{
++st->top;
st->s[st->top] = s;
}
char pop(stack* st)
{
--st->top;
return st->s[st->top];
}
main()
{
char str[] = "My name is Gena";
int count = sizeof(str);
stack My_stack;
reset(&My_stack);
for(int i = 0; i < count; i++)
{
push(&My_stack, str[i]);
}
while(My_stack.top != -1)
{
cout << pop(&My_stack);
}
cout << endl;
}
#include <iostream.h>
struct stack
{
char s[1000];
int top;
};
void reset(stack* st)
{
st->top = -1;
}
void push(stack* st, char s)
{
++st->top;
st->s[st->top] = s;
}
char pop(stack* st)
{
--st->top;
return st->s[st->top];
}
main()
{
char str[] = "My name is Gena";
int count = sizeof(str);
stack My_stack;
reset(&My_stack);
for(int i = 0; i < count; i++)
{
push(&My_stack, str[i]);
}
while(My_stack.top != -1)
{
cout << pop(&My_stack);
}
cout << endl;
}