汽车之家网站如何免费发布广告
设计一个顺序栈,并利用该顺序栈将给定的十进制整整数转换为二进制并输出。
函数接口定义:
#define MaxSize 100 /* 栈最大容量 */
int top; /* 栈顶指针 */
int mystack[MaxSize]; /* 顺序栈 *//*判栈是否为空,空返回true,非空返回false */
bool isEmpty();/* 元素x入栈 */
void Push(int x);/* 取栈顶元素 */
int getTop();/* 删除栈顶元素 */
void Pop();
其中 MaxSize 和 top 分别为栈的最大容量和栈顶指针。数组mystack 用来模拟顺序栈。请实现给出的isEmpty、Push、getTop和Pop这四个函数。
裁判测试程序样例:
#include <bits/stdc++.h>
using namespace std;#define MaxSize 100 /* 栈最大容量 */
int top; /* 栈顶指针 */
int mystack[MaxSize]; /* 顺序栈 *//*判栈是否为空,空返回true,非空返回false */
bool isEmpty();/* 元素x入栈 */
void Push(int x);/* 取栈顶元素 */
int getTop();/* 删除栈顶元素 */
void Pop();/* 十进制正整数转换为二进制 */
void dec2bin(int x) {top = -1; /* 初始化栈顶指针 */while (x) {Push(x % 2);x >>= 1;}while (!isEmpty()) {int t = getTop();Pop();printf("%d", t);}printf("\n");
}int main(int argc, char const *argv[])
{int n;while (scanf("%d", &n) != EOF) {dec2bin(n);}return 0;
}/* 请在这里填写答案 */
输入样例:
10
输出样例:
1010
我的答案
bool isEmpty()
{if (top == -1)return true;elsereturn false;
}/* 元素x入栈 */
void Push(int x)
{if (top == MaxSize - 1)return;else{top++;mystack[top] = x;}}/* 取栈顶元素 */
int getTop()
{if (top == -1)return 0;elsereturn mystack[top];
}/* 删除栈顶元素 */
void Pop()
{if (top == -1)return;elsetop--;
}