用c语言来写这段代码 (1初始化栈操作(2判断栈空(3判断栈满(4进栈操作(5出栈操作(6去栈顶元素 (7使用辗转相除法十进制转二进制
时间: 2024-05-28 17:09:11 浏览: 55
用栈实现十进制转换成二进制(c语言)
4星 · 用户满意度95%
1. 初始化栈操作的代码:
#include <stdio.h>
#define MAXSIZE 10 //假设栈的最大容量为10
int stack[MAXSIZE]; //定义一个数组模拟栈
int top = -1; //top表示栈顶位置,初始化为-1表示栈为空
void initStack() {
top = -1;
printf("栈已初始化为空!\n");
}
2. 判断栈空的代码:
int isEmpty() {
if(top == -1) {
printf("栈为空!\n");
return 1;
} else {
printf("栈不为空!\n");
return 0;
}
}
3. 判断栈满的代码:
int isFull() {
if(top == MAXSIZE-1) {
printf("栈已满!\n");
return 1;
} else {
printf("栈未满!\n");
return 0;
}
}
4. 进栈操作的代码:
void push(int x) {
if(isFull()) {
printf("栈满,无法插入元素!\n");
return;
} else {
top++;
stack[top] = x;
printf("插入元素成功,插入的元素为%d!\n", x);
}
}
5. 出栈操作的代码:
int pop() {
int x;
if(isEmpty()) {
printf("栈空,无法删除元素!\n");
return -1;
} else {
x = stack[top];
top--;
printf("删除元素成功,删除的元素为%d!\n", x);
return x;
}
}
6. 取栈顶元素的代码:
int getTop() {
if(isEmpty()) {
printf("栈空,无法取栈顶元素!\n");
return -1;
} else {
printf("栈顶元素为%d!\n", stack[top]);
return stack[top];
}
}
7. 使用辗转相除法将十进制转换为二进制的代码:
void decimalToBinary(int decimal) {
int binary[MAXSIZE];
int i = 0;
while(decimal) {
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
printf("对应的二进制为:");
for(int j = i-1; j >= 0; j--) {
printf("%d", binary[j]);
}
printf("\n");
}
以上就是用c语言写这段代码的方法。
阅读全文