数据结构栈基本运算


栈是一种后进先出数据结构。栈在不同领域用于计算表达式、调用和递归策略等。栈有一些基本运算。我们在此将看到栈的这些运算,并通过栈 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

更新时间:2019 年 8 月 27 日

超过 7K 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始
广告