从0实现栈,队列(包括STL)

从0实现栈与队列(含STL)

栈,队列

#include
using namespace std;
const int N = 1e5 + 10;
int arr[N];
int top;
//1.push(x) :向栈中加⼊⼀个数x

void push(int x)
{
	arr[++top] = x;
}

//2.出栈

void pop()
{
	top--;
}

//3.查询栈顶元素

void front()
{
	cout << arr[top];
}

//4.判断栈是否为空

bool empty()
{
	return top == 0;
}

//5. 栈中元素个数

int size()
{
	return top;
}

//stack
//1. 如何创建?
//2. 关⼼⾥⾯有什么函数?
//1 创建
//stack st;
//T 可以是任意类型的数据。
//2 size / empty
//1. size :返回栈⾥实际元素的个数;
//2. empty :返回栈是否为空。
//3 push / pop
//1. push :进栈;
//2. pop :出栈。
//4 top
//1. top :返回栈顶元素,但是不会删除栈顶元素。
//栈,先进后出

//队列(先进先出)
const int N = 1e5 + 10;
int q[N], h, t;
// 1.⼊队

void push(int x)
{
	q[++t] = x;
}

// 2.出队

void pop()
{
	h++;
}

// 3.查询队头元素

int front()
{
	return q[h + 1];
}

// 4.查询队尾元素

int back()
{
	return q[t];
}

// 5.判断是否为空

bool empty()
{
	return h == t;
}

// 有效元素的个数

int size()
{
	return t - h;
}

//queue
//1. 如何创建?
//2. ⾥⾯提供了什么函数?
//1 创建
//queue q;
//T 可以是任意类型的数据。
//2 size / empty
//1. size :返回队列⾥实际元素的个数;
//2. empty :返回队列是否为空。
//3 push / pop
//1. push :⼊队;
//2. pop :出队。
//4 front / back
//1. front :返回队头元素,但不会删除;
//2. back :返回队尾元素,但不会删除。

下一篇树及其深度宽度遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值