定义顺序栈,实现初始化、置栈空、入栈、出栈、取栈顶元素等。然后完成数制转换
时间: 2024-10-28 07:06:51 浏览: 58
C语言用栈实现十进制转换为二进制的方法示例
5星 · 资源好评率100%
顺序栈是一种基于数组实现的数据结构,它遵循先进后出(Last In First Out,LIFO)的原则。以下是顺序栈的基本操作:
1. **初始化(Create Stack)**:
创建一个大小为`size`的数组来表示栈,将栈顶指针`top`设为-1,表示栈为空。
```cpp
int stack[SIZE]; // 假设stack是一个整型数组
int top = -1;
```
2. **置栈空(Clear Stack)**:
将`top`置为-1,表示栈内没有任何元素。
```cpp
top = -1;
```
3. **入栈(Push)**:
当需要添加一个元素到栈顶时,将新的元素存储在`stack[top+1]`位置,并将`top`加1。
```cpp
void push(int value) {
if (top == SIZE - 1) { // 如果已满,抛出异常或动态扩容
throw "Stack Overflow";
}
stack[++top] = value;
}
```
4. **出栈(Pop)**:
删除并返回栈顶元素,同时更新`top`减一。
```cpp
int pop() {
if (top == -1) { // 空栈,抛出异常或返回特殊值
throw "Stack Underflow";
}
return stack[top--];
}
```
5. **取栈顶元素(Peek)**:
返回当前栈顶元素,但不删除它。如果栈为空,则返回特定值。
```cpp
int peek() {
if (top == -1) {
return INT_MIN; // 或者其他默认值
}
return stack[top];
}
```
至于数制转换,比如从十进制转二进制,可以创建一个辅助函数来进行计算:
```cpp
int decimalToBinary(int decimal) {
if (decimal == 0) return "0";
string binary = "";
while (decimal > 0) {
binary = to_string(decimal % 2) + binary;
decimal /= 2;
}
return binary;
}
```
这个函数会将输入的十进制数转换成字符串形式的二进制数。
阅读全文