21xrx.com
2024-09-20 01:06:27 Friday
登录
文章检索 我的文章 写文章
C++顺序栈实现
2023-07-09 04:04:08 深夜i     --     --
C++ 顺序栈 实现

C++顺序栈(又称为数组栈)是一种常见的数据结构,它的实现主要基于数组。它的特点是先进后出,可以用于解决一些基本的算法问题,如表达式计算、括号匹配、图的深度优先遍历等。

顺序栈的实现步骤如下:

1. 定义一个数组,用于存储数据元素;

2. 定义一个变量,用于记录栈顶元素的位置;

3. 提供入栈、出栈、判断栈空和栈满等基本操作。

具体实现方法如下:

1. 定义一个数组,用于存储数据元素,C++中可以使用数组类型;

2. 定义一个变量,用于记录栈顶元素的位置,例如:


int top = -1;

3. 实现入栈操作,即在栈顶插入元素:


void push(int x)

{

  if(top == MAX_SIZE - 1) // 栈满

  

    // 抛出异常

  

  else

  {

    top++;

    data[top] = x;

  }

}

4. 实现出栈操作,即弹出栈顶元素:


int pop()

{

  if(top == -1) // 栈空

  

    // 抛出异常

  

  else

  {

    int x = data[top];

    top--;

    return x;

  }

}

5. 实现判断栈空和栈满等操作:


bool isEmpty()

  return top == -1;

bool isFull()

  return top == MAX_SIZE - 1;

具体使用顺序栈可以参考以下示例:


#include <iostream>

using namespace std;

#define MAX_SIZE 100 // 栈的最大容量

int data[MAX_SIZE]; // 存储数据元素的数组

int top = -1; // 栈顶元素的位置

// 入栈操作

void push(int x)

{

  if(top == MAX_SIZE - 1) // 栈满

  

    cout << "Error: Stack is full!" << endl;

  

  else

  {

    top++;

    data[top] = x;

  }

}

// 出栈操作

int pop()

{

  if(top == -1) // 栈空

  

    cout << "Error: Stack is empty!" << endl;

  

  else

  {

    int x = data[top];

    top--;

    return x;

  }

}

// 判断栈空操作

bool isEmpty()

  return top == -1;

// 判断栈满操作

bool isFull()

  return top == MAX_SIZE - 1;

int main()

{

  push(1);

  push(2);

  push(3);

  cout << pop() << endl;

  cout << pop() << endl;

  cout << pop() << endl;

  return 0;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复