使用
C++
中
STL
的
stack
,只有
C++
中有,
C
标准库没有
STL
。
程序:
(单整数)
#include
#include
using namespace std;
stacks;
int main()
{
int a,b;
scanf("%d",&a);
s.push(a);
printf("%d\n",s.top());
s.pop();
return 0;
}
方法二:
自己写程序(整数)
:
#include
const static int g_iStackSize = 100; //
定义栈长度,为
100
static int g_iStackPoint = -1;
//
初始化栈指针为
-1
,也就是栈里一个元素都没有
//
定义栈元素数据结构,可以扩展为任意类型数据
typedef struct tagStackData
{
int iData; //
栈元素的数据,整型
}stStackData,* pstStackData;
//
栈只保存栈元素指针
pstStackData g_arrStack[g_iStackSize];//
这个就是栈体了,一个长度为
stacksize
的数组
//
压元素入栈,可以返回栈指针当前位置
//@param data
压入栈的元素
//@return int
为
100
时就是满了
int push(const pstStackData data)
{
if(g_iStackPoint >= g_iStackSize)//
也就是栈满了
{
//
提示栈满
printf("stack is full.\n");
//
返回栈指针位置
return g_iStackPoint;
}
else//
栈还没满
{