字符类型的栈(有大小上限) 从0开始计数
主要实现思想: 1.本质就是数组 2.用下标表示栈顶 3.出入栈就对下标加减就好了
*PS:*若要实现任意长度的栈,使用栈链表(本质就是单链表),头插法创建单链表(这样可以保证出入栈方向与创建方向一致,头指针就是栈顶元素的指针,如果尾插的话,链表尾才是栈顶,不方便),出入栈就对头指针操作:入栈就新插入一个节点,并让头指针指向他。出栈就删除头指针指向的节点,并将头指针指向该节点下一个
#include<bits/stdc++.h>
using namespace std;
class stackk {
int top;
char a[100];
public:
stackk()
{
top = -1;
}
~stackk()
{
}
char gettop()
{
if (is_empty())
{
cout << "error!" << endl;
exit(0);
}
else
{
top--;
return a[top + 1];
}
}
void pushtop(char b)
{
if (is_full())
{
cout << "error!" << endl;
}
else
{
top++;
a[top] = b;
}
}
bool is_empty()
{
return top == -1;
}
bool is_full()
{
return top == 99;
}
};
int main()
{
stackk a;
char n;
cin >> n;
a.pushtop(n);
cout << a.gettop();
}
|