顺序栈 百位数倒置 c++
时间: 2024-04-27 09:16:27 浏览: 7
顺序栈是一种基于数组实现的栈结构,它遵循先进后出(LIFO)的原则。顺序栈的特点是只能在栈顶进行插入和删除操作,即只能在栈顶进行入栈和出栈操作。
C++中可以使用数组来实现顺序栈。下面是一个简单的顺序栈的实现示例:
```cpp
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 栈的最大容量
class SeqStack {
private:
int data[MAX_SIZE]; // 存储栈元素的数组
int top; // 栈顶指针
public:
SeqStack() {
top = -1; // 初始化栈顶指针为-1,表示栈为空
}
bool isEmpty() {
return top == -1;
}
bool isFull() {
return top == MAX_SIZE - 1;
}
void push(int value) {
if (isFull()) {
cout << "Stack is full, cannot push element." << endl;
return;
}
data[++top] = value; // 将元素插入到栈顶,并更新栈顶指针
}
int pop() {
if (isEmpty()) {
cout << "Stack is empty, cannot pop element." << endl;
return -1;
}
return data[top--]; // 返回栈顶元素,并更新栈顶指针
}
};
int main() {
SeqStack stack;
stack.push(1);
stack.push(2);
stack.push(3);
while (!stack.isEmpty()) {
cout << stack.pop() << " ";
}
cout << endl;
return 0;
}
```
关于百位数倒置,你是指将一个三位数的百位、十位和个位进行倒置吗?如果是的话,可以使用以下代码实现:
```cpp
#include <iostream>
using namespace std;
int reverseNumber(int num) {
int hundreds = num / 100; // 获取百位数
int tens = (num / 10) % 10; // 获取十位数
int ones = num % 10; // 获取个位数
return ones * 100 + tens * 10 + hundreds; // 百位、十位和个位倒置后的结果
}
int main() {
int num = 123;
int reversedNum = reverseNumber(num);
cout << "Reversed number: " << reversedNum << endl;
return 0;
}
```
希望以上回答能够帮助到你!如果有任何疑问,请随时提出。