利用c++实现并输出代码,给出链式栈的定义,并将一个十进制整数转化成二至九进制之间的任意进制数输出。
时间: 2024-10-06 21:04:44 浏览: 27
链式栈是一种利用链表实现的数据结构,它支持常见的栈操作如压入元素(push)、弹出元素(pop)以及检查栈顶元素(top)。下面是一个简单的C++定义链式栈的例子:
```cpp
#include <iostream>
using namespace std;
// 定义节点结构
struct Node {
int data;
Node* next;
};
// 链式栈类
class LinkedStack {
private:
Node* top; // 栈顶指针
public:
// 构造函数,初始化空栈
LinkedStack() : top(nullptr) {}
// 压入元素到栈顶
void push(int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->next = top;
top = newNode;
}
// 弹出栈顶元素
int pop() {
if (isEmpty()) return -1; // 如果为空则返回-1表示错误
int value = top->data;
Node* temp = top;
top = top->next;
delete temp;
return value;
}
// 检查栈顶元素
int peek() {
if (isEmpty()) return -1; // 空栈
return top->data;
}
// 判断栈是否为空
bool isEmpty() const {
return top == nullptr;
}
};
// 将十进制整数转换为任意进制数(示例:0-9进制)
void convertToBase(int num, int base) {
if (num == 0)
cout << "0";
else {
while (num > 0) {
int digit = num % base;
cout << digit;
num /= base;
}
}
}
int main() {
// 创建一个链式栈
LinkedStack stack;
// 示例:将100转换为3进制
int decimalNum = 100;
cout << "Decimal to Base 3: ";
convertToBase(decimalNum, 3);
cout << endl;
return 0;
}
```
阅读全文