链栈创建及基本操作

126 阅读1分钟

STL中的栈(常用)

#include<stack> //引入STL中的栈 
stack<int>s; //构造栈 
s.pop(); //删除栈顶元素
s.top(); //获取栈顶元素
s.push(); //进栈操作
s.empty(); //判断栈是否为空 

链栈创建

typedef struct linkStack{
	int data;
	struct linkStack* next;
}LinkStackNode,*LinkStack;

初始化

void initStack(LinkStack &s) {
	s = NULL;
}

入栈操作

void push(LinkStack &s, int x) {
	LinkStack p = new LinkStackNode;
	p->data = x;
	p->next = s;
	s = p;
}

获取栈顶元素

int getTop(LinkStack &s) {
	return s->data;
}

出栈操作

void pop(LinkStack &s) {
	LinkStack p = s;
	s = s->next;
	delete p;
}

判断栈是否为空

bool isEmpty(LinkStack &s) {
	if (s == NULL) return 1;
	else return 0;
}