【算法笔记】栈/队列 的应用-(codeup 1918)简单计算器

一、栈

栈:后进先出的数据结构。
栈顶指针:始终指向栈的最上方元素的一个标记。使用数组实现栈时,栈顶指针是一个int型变量(数组下标从零开始),记top;使用链表实现栈时,是一个int* 型指针。
栈中没有元素,栈空时令top为-1

栈的常见操作

  1. 清空 clear()
    栈顶指针置为-1
void clear(){
   
	TOP=-1;
}
  1. 获取栈内元素个数 size()
    top指针始终指向栈顶元素
int size(){
   
	return TOP+1;	//top是一个int型变量,返回数组下标
}
  1. 判空 empty()
bool empty(){
   
	if(TOP==-1) return true;
	else return false;
}
  1. 进栈 push()
    先把top+1,再把x存入top指向的位置
void push(int x){
   
	st[++TOP]=x;
}
  1. 出栈 pop()
    栈顶指针-1,必须先判空
void pop(){
   
	TOP--;
}
  • 取栈顶元素 top()
    必须先判空
int top(){
   
	return st[TOP];
}

c++ STL容器关于栈(stack)的说明

二、队列

队列:先进先出的数据结构。就像食堂打饭,队列总是从队尾加入元素,从队首移除元素。
一般来说,队首指针front指向队首元素的前一个位置,队尾指针rear指向队尾元素

队列常见操作

  • 清空 clear()
    初始状态:front=-1,rear=-1
void clear(){
   
	front=rear=-1;
}
  • 获取队列内元素的个数 size()
    rear-front
int size(){
   
	return rear-front;
}
  • 判空 empty()
    front - - -> front==rear
bool empty(){
   
	if(front
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值