保研机试复习(二)——栈和队列

1. 栈的应用

栈是一种后进先出的数据结构。
(1)常用操作

  • empty():堆栈为空返回真。
  • pop():移除栈顶元素。
  • top():返回栈顶元素。
  • push():在栈顶增加元素。
  • size():返回栈中元素数目。
#include <stack>
stack<int> st;

1.1 使用数组实现栈

变量top表示栈顶元素的下标,当top=-1时栈为空。
(1)clear
清空栈内所有的元素。

void clear() {
	top =-1;
}

注意: STL中没有clear()函数,可以通过一个循环while反复pop出元素直到栈内清空。

while(!st.empty())
	st.pop()

(2)size
返回栈内元素个数。因为栈元素是从数组下标0开始的,因此元素个数为top+1

int size(){
	return top+1;
}

(3)empty
判断栈内是否为空。

bool empty(){
	if(top ==-1) return true;
	else return false;
}

(4)pop
将栈顶元素出栈。top表示栈顶下标,直接将top-1即可。

void pop(){
	top--;
}

(5)top
返回栈顶元素值。

int top(){
	return st[top];
}

(6)push
将元素x置于栈顶。

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

注意事项:

  1. STL不提供clear()清空堆栈函数。
  2. 在使用Pop()和Top()函数之前必须先使用empty()函数判断栈是否为空。

2. 队列的应用

队列是一种先进先出的数据结构。
(1)常用操作

  • empty():队列为空返回真。
  • pop():移除队首元素。
  • front():返回队首元素。
  • back():返回队尾元素。
  • push():在队尾增加元素。
  • size():返回队列元素数目。
#include <queue>
queue<int> q;

2.1 使用数组实现队列

一般来说,需要一个队首指针front来指向队首元素的前一个位置,和一个队尾指针rear指向队尾元素。队列的初始状态为front=-1, rear =-1。

(1)clear
将front和rear重置为初始状态。

void clear(){
	front =rear =-1;
}

(2)size
返回队列元素个数。

int size(){
	return rear -front;
}

(3)empty
当rear=front时,队列为空。

bool empty(){
	if(front ==rear) return true;
	else return false;
}

(4)pop
弹出队首第一个元素。

void pop(){
	front++;
}

(5)front
返回队首第一个元素

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

(6)push
把元素插入队列末尾

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

(7)back
返回队尾第一个元素

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

注意事项:

  1. STL不提供clear()清空队列函数。
  2. 在使用Pop()和Top()函数之前必须先使用empty()函数判断栈是否为空。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冠long馨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值