数据结构栈基本运算
栈是一种后进先出数据结构。栈在不同领域用于计算表达式、调用和递归策略等。栈有一些基本运算。我们在此将看到栈的这些运算,并通过栈 ADT 查看一个示例。
ADT(抽象数据类型)是一种特殊数据类型,其行为由一组值和一组运算来定义。使用关键字“抽象”是因为我们可以使用这些数据类型,可以执行不同的运算。但是,这些运算如何工作对用户完全不可见。ADT 由基本数据类型构成,但是运算逻辑是不可见的。
以下是栈 ADT 的一些运算或函数。
- isFull(),用于检查栈是否已满
- isEmpry(),用于检查栈是否为空
- push(x),用于将 x 压入栈中
- pop(),用于删除栈顶的一个元素
- peek(),用于获取栈顶元素
- size(),此函数用于获取栈中元素的数量
示例
#include<iostream> #include<stack> using namespace std; main(){ stack<int> stk; if(stk.empty()){ cout << "Stack is empty" << endl; } else { cout << "Stack is not empty" << endl; } //insert elements into stack stk.push(10); stk.push(20); stk.push(30); stk.push(40); stk.push(50); cout << "Size of the stack: " << stk.size() << endl; //pop and dispay elements while(!stk.empty()) { int item = stk.top(); // same as peek operation stk.pop(); cout << item << " "; } }
输出
Stack is empty Size of the stack: 5 50 40 30 20 10
广告