当前位置: 首页 > article >正文

【数据结构/C++】栈和队列_顺序栈

image.png

#include<iostream>
using namespace std;
#define MaxSize 10
// 1. 顺序栈
typedef int ElemType;
struct Stack {
  ElemType data[MaxSize];
  int top;
} SqStack;
// 初始化栈
void init(Stack &s) {
  // 初始化栈顶指针
  s.top = -1;
}
// 入栈
bool push(Stack &s, ElemType x)
{
  if (s.top == MaxSize - 1) {
    return false;
  } 
  s.top = s.top + 1;
  s.data[s.top] = x;
  return true;
}
// 出栈
bool pop(Stack &s, ElemType &x) {
  if(s.top == -1) {
    return false;
  }
  x = s.data[s.top];
  s.top = s.top - 1;
  return true;
}
// 遍历
void traverse(Stack s) {
  for (int i = 0; i <= s.top; i++) {
    cout << s.data[i] << " ";
  }
  cout << endl;
}
// 栈的长度
int length(Stack s) {
  return s.top + 1;
}
int main() {
  Stack s;
  init(s);
  ElemType x;
  push(s, 1);
  push(s, 2);
  push(s, 3);
  push(s, 4);
  push(s, 5);
  traverse(s);
  pop(s, x);
  cout << "pop: " << x << endl;
  traverse(s);
  cout << "length: " << length(s) << endl;
  return 0;
}

image.png


http://www.kler.cn/a/144676.html

相关文章:

  • STM32 启动文件分析
  • android shape绘制半圆
  • gitee推荐-1Panel
  • 英特尔和 ARM 将合作开发移动芯片技术,如何看待双方合作?
  • Mybatis-Plus 租户使用
  • proto语法学习笔记
  • docker devicemapper: Error running DeleteDevice dm_task_run failed
  • 用Python进行数据分析:探索性数据分析的实践与技巧(文末送书)
  • Robots 元标签与 X-Robots 标签
  • Proteus仿真--用DS1302与12864LCD设计的可调式中文电子日历
  • SpringMVC系列-7 @CrossOrigin注解与跨域问题
  • 基于springboot实现实习管理系统的设计与实现项目【项目源码+论文说明】计算机毕业设计
  • python web项目导包规范
  • 深度学习之基于Tensorflow银行卡号码识别系统
  • ubuntu环境删除qtcreator方法
  • Java学习路径:入门学习、深入学习、核心技术,操作案例和实际代码示例
  • STM32出现 Invalid Rom Table 芯片锁死解决方案
  • Vue3 响应式数据 reactive使用
  • Vite CSS Module 优雅的处理样式隔离
  • 卷积神经网络(AlexNet)鸟类识别