在vc2010学习版编写“链栈头文件.h”,其中包含:建立链式栈、元素入栈、出栈、判栈空、求栈长度、取栈顶元素和遍历栈等基本操作。再编写“动态单链表主程序.cpp”,调用以上函数。
时间: 2024-09-20 22:15:43 浏览: 39
在Visual C++ 2010的学习版中,如果你想创建一个简单的链式栈(也称为链表栈),你需要首先在`链栈.h`头文件中声明结构体和相关函数。假设我们已经有一个名为`Node`的单向链表节点结构:
```cpp
// 链栈头文件.h
#ifndef _LINKSTACK_H_
#define _LINKSTACK_H_
#include <iostream>
struct Node {
int data;
Node* next;
};
class LinkStack {
public:
// 构造函数
LinkStack() : top(nullptr) {}
// 初始化栈为空
void initialize();
// 入栈元素
void push(int value);
// 出栈元素并返回顶部数据
int pop();
// 判定栈是否为空
bool isEmpty() const;
// 求栈长度
int size() const;
// 取栈顶元素但不移除
int peek() const;
// 遍历栈
void traverse() const;
private:
Node* top; // 栈顶指针
};
#endif // _LINKSTACK_H_
```
然后,在`动态单链表主程序.cpp`中,你可以像下面这样调用这些函数:
```cpp
#include "链栈.h"
int main() {
LinkStack stack;
// 初始化栈
stack.initialize();
// 入栈操作示例
for (int i = 0; i < 5; ++i) {
stack.push(i);
}
// 遍历栈
std::cout << "Stack elements before popping:\n";
stack.traverse();
// 出栈操作示例
while (!stack.isEmpty()) {
std::cout << "Popped element: " << stack.pop() << '\n';
}
return 0;
}
```
在这个例子中,`initialize()`用于清空栈,`push()`将元素添加到栈顶,`pop()`删除并返回栈顶元素,`isEmpty()`检查栈是否为空,`size()`返回栈中元素的数量,`peek()`查看但不改变栈顶元素,而`traverse()`则是通过打印当前栈顶元素来进行栈内容的遍历。
阅读全文