构造一个空的顺序栈L。输入一个十进制数,利用顺序栈实验将其转换成八进制数。 输出实验结果。
时间: 2024-02-23 17:03:36 浏览: 61
用栈实现十进制转换为八进制
好的,我会根据你的要求给你回答问题。以下是用 C++ 代码实现的顺序栈转换十进制数为八进制数的过程。
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义栈的最大长度
struct SqStack {
int data[MAXSIZE];
int top = -1;
};
// 判断栈是否为空
bool isEmpty(SqStack &L) {
return L.top == -1;
}
// 入栈操作
bool push(SqStack &L, int x) {
if (L.top == MAXSIZE - 1) return false;
L.top++;
L.data[L.top] = x;
return true;
}
// 出栈操作
bool pop(SqStack &L, int &x) {
if (isEmpty(L)) return false;
x = L.data[L.top];
L.top--;
return true;
}
// 将十进制数转换为八进制数
void DecToOct(SqStack &L, int n) {
while (n) {
push(L, n % 8);
n /= 8;
}
}
int main() {
SqStack L;
int num;
cout << "请输入一个十进制数:";
cin >> num;
DecToOct(L, num);
cout << "转换为八进制数为:";
while (!isEmpty(L)) {
int x;
pop(L, x);
cout << x;
}
cout << endl;
return 0;
}
```
运行结果:
```
请输入一个十进制数:1234
转换为八进制数为:2322
```
以上是用顺序栈实现将十进制数转换为八进制数的过程,希望能够帮到你!
阅读全文