数据结构顺序栈+c语言进制转换
时间: 2023-12-04 20:02:20 浏览: 115
C语言数据结构 顺序栈——进制转换
顺序栈是一种使用数组实现的栈结构,在C语言中可以通过定义一个固定大小的数组和一个指向栈顶的指针来实现。进制转换是将一个数从一种进制表示转换为另一种进制表示的过程。
下面是一个使用顺序栈实现进制转换的示例代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int top;
} Stack;
void initStack(Stack *s) {
s->top = -1;
}
void push(Stack *s, int value) {
if (s->top == MAX_SIZE - 1) {
printf("Stack is full!\n");
return;
}
s->data[++s->top] = value;
}
int pop(Stack *s) {
if (s->top == -1) {
printf("Stack is empty!\n");
return -1;
}
return s->data[s->top--];
}
int isEmpty(Stack *s) {
return s->top == -1;
}
void decimalToBinary(int decimal) {
Stack s;
initStack(&s);
while (decimal > 0) {
push(&s, decimal % 2);
decimal /= 2;
}
printf("Binary representation: ");
while (!isEmpty(&s)) {
printf("%d", pop(&s));
}
printf("\n");
}
int main() {
int decimal;
printf("Enter a decimal number: ");
scanf("%d", &decimal);
decimalToBinary(decimal);
return 0;
}
```
示例代码中的 `decimalToBinary` 函数可以将一个十进制数转换为二进制表示。首先创建一个空栈,然后通过不断取余和整除操作将余数依次入栈,最后依次出栈输出即可得到二进制表示。
阅读全文