6 您所在的位置:网站首页 使用栈将十进制转化为二进制 6

6

2024-03-27 07:51| 来源: 网络整理| 查看: 265

6-1 十进制转二进制(顺序栈设计和应用) (20分)

设计一个顺序栈,并利用该顺序栈将给定的十进制整整数转换为二进制并输出。

函数接口定义: #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 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; } /* 请在这里填写答案 */

答案样例:

/*判栈是否为空,空返回true,非空返回false */ bool isEmpty(){ if(top == -1) return true; return false; } /* 元素x入栈 */ void Push(int x){ mystack[++top]=x; } /* 取栈顶元素 */ int getTop(){ return mystack[top]; } /* 删除栈顶元素 */ void Pop(){ mystack[top--]=0; }

我的好伙计你点个赞再走,你要是三连一下就更好了❀

bilibili:羊卓的杨 公众号:羊卓的杨



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有