#include<iostream>
#include<string>
class stack {
char* stk;
int maxSize = 1;
int top;
public:
stack() {
stk = new char[maxSize];
top = 0;
}
bool isEmpty() {
return (top == 0 ? 1 : 0);
}
bool isFull() {
return (top > maxSize ? 1 : 0);
}
void push(char val) {
if (!isFull()) {
stk[top] = val;
top++;
}
else {
extend();
stk[top] = val;
top++;
}
}
void pop() {
if (!isEmpty()) {
top--;
}
else {
std::cout << "\nCannot pop an empty stack. \n";
}
}
void display() {
if (!isEmpty()) {
for (int i = 0; i < top; i++) {
std::cout << std::endl << stk[i];
}
}
else {
std::cout << "\nCannot display an empty stack. \n";
}
}
char getTop() {
if (!isEmpty())
return stk[top];
else
std::cout << "\nCannot get anything from an empty stack. \n";
}
void extend() {
char* tmp;
tmp = new char[maxSize];
for (int i = 0; i < maxSize; i++) {
tmp[i] = stk[i];
}
delete [] stk;
maxSize = maxSize + 1;
for (int i = 0; i < maxSize - 1; i++) {
stk[i] = tmp[i];
}
delete [] tmp;
tmp = NULL;
}
};
void main() {
stack s;
s.push('c');
s.pop();
s.push('S');
s.push('T');
s.push('R');
s.push('I');
s.push('N');
s.push('G');
s.display();
system("pause");
}
Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю не так? Это базовая программа, которая не должна показывать такую проблему. Я не хочу использовать много функций и ничего голого кода. Я новичок, как код может показать. Просто говорить что-то, чтобы я мог публиковать сообщения на форуме, не позволил бы мне писать, если я не напишу намного больше. Поэтому я просто пытаюсь выразить словами, чтобы я мог писать спокойно.