栈实现,栈链式,栈顺序,栈链式存储,栈顺序存储,栈实现代码,栈数据结构实现,栈c/c++实现,其实大家可以直接调用stl栈!
抽象数据类型:
[cpp]

void InitStack(SNode *&HS)
{
HS=NULL;
}
void Push(SNode *&HS,ElemType item)
{
SNode *newpt=new SNode;
newpt->data=item;
newpt->next=HS;
HS=newpt;
}
ElemType Pop(SNode *&HS)
{
//检测空否?处理
SNode *p=HS;
HS=HS->next;
ElemType temp=p->data;
delete p;
return temp;
}
ElemType Peek(SNode *HS)
{
return HS->data;
}
bool EmptyStack(SNode *HS)
{
return HS==NULL;
}
void ClearStack(SNode *&HS)
{
SNode *cp=HS,*np;
while(cp!=NULL)
{
np=cp->next;
delete cp;
cp=np;
}HS=NULL;
}
[/cpp]

STL栈:
push(x) 将x加入栈中,即入栈操作
pop() 出栈操作(删除栈顶),只是出栈,没有返回值
top() 返回第一个元素(栈顶元素)
size() 返回栈中的元素个数
empty() 当栈为空时,返回 true
[cpp]

#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> STACK;
STACK.push(5);
STACK.push(6);
STACK.push(7);
STACK.pop();
cout<<STACK.top()<<endl;
cout<<STACK.size()<<endl;
cout<<STACK.empty()<<endl;
return 0;
}
[/cpp]