考研栈代码怎么写

土地鼠爱分享 · 2024-12-26 08:13:20

根据您提供的信息,您可能在询问关于栈的基本操作代码的实现。以下是一个简单的顺序栈的C++实现示例,包括栈的基本操作:

```cpp

include

using namespace std;

define MaxSize 100 // 定义栈中元素的最大个数

// 定义栈结构体

typedef struct {

int data[MaxSize]; // 使用静态数组存放栈中的元素

int top; // 栈顶指针,指向栈顶元素

} SqStack;

// 初始化栈

void InitStack(SqStack &S) {

S.top = -1;

}

// 判断栈是否为空

bool StackEmpty(SqStack S) {

return S.top == -1;

}

// 进栈操作

bool Push(SqStack &S, int x) {

if (S.top == MaxSize - 1) // 如果栈满,返回false

return false;

S.data[++S.top] = x; // 先移动指针,后放入值

return true;

}

// 出栈操作

bool Pop(SqStack &S, int &x) {

if (S.top == -1) // 如果栈空,返回false

return false;

x = S.data[S.top--]; // 先取出值,后移动指针

return true;

}

// 读取栈顶元素

bool GetTop(SqStack S, int &x) {

if (S.top == -1) // 如果栈空,返回false

return false;

x = S.data[S.top]; // 直接读取栈顶元素

return true;

}

int main() {

SqStack s; // 定义顺序栈

InitStack(s); // 初始化顺序栈

// 测试进栈

Push(s, 1);

Push(s, 2);

Push(s, 3);

// 测试出栈

int x;

while (!StackEmpty(s)) {

Pop(s, x);

cout<< x << " ";

}

cout << endl;

return 0;

}

```

这段代码定义了一个顺序栈,并实现了栈的基本操作,包括初始化、判断栈是否为空、进栈、出栈和读取栈顶元素。在`main`函数中,我们创建了一个栈对象,并对其进行了进栈和出栈的操作,以演示栈的基本功能。

相关推荐

(c)2008-2025 广知网 All Rights Reserved 鄂ICP备2023002720号-19