十进制转二进制的实现(实验3.3)
2017-10-29 10:02
253 查看
一、实验目的
熟练掌栈的结构特点,学会使用栈解决实际问题。实现十进制转二进制的功能。
二、实验内容
十进制转二进制的一个算法是不断的去余,再逆序拼接在一起。注意,是逆序,就是先算出来的后拼接。这个特性正和栈的先进后出相匹配,只要把取余的出来的数压栈,计算完之后,再逐个弹栈出来,拼接在一起,就可以完成这一功能。之前写过一个顺序栈的C++模板,这里给它增加一个函数方法。下面给给出了上一版本的顺序表模板连接。
顺序栈模板1.0
SeqStack.h 的public中添加:
SeqStack.cpp中添加上面方法的实现:
main.cpp
三、心得和体会
一开始看到十进制转二进制这个题目出现在栈和队列的练习中,一开始我还是有疑惑的,这转换进制和这个数据结构有关系吗?可是仔细一想进制转换的算法,突然发现其中的相似的先进后出的特点。当然,我写的这个模板也可以应用于十进制转任意进制。这里就体现了C++模板的便利,栈的用途。
在空闲的时候更新的地方,大家可以捧一下场,嘿嘿~
新世界的大门 (๑•̀ㅂ•́)و✧
熟练掌栈的结构特点,学会使用栈解决实际问题。实现十进制转二进制的功能。
二、实验内容
十进制转二进制的一个算法是不断的去余,再逆序拼接在一起。注意,是逆序,就是先算出来的后拼接。这个特性正和栈的先进后出相匹配,只要把取余的出来的数压栈,计算完之后,再逐个弹栈出来,拼接在一起,就可以完成这一功能。之前写过一个顺序栈的C++模板,这里给它增加一个函数方法。下面给给出了上一版本的顺序表模板连接。
顺序栈模板1.0
SeqStack.h 的public中添加:
// 进制转换 void Decimaltor(DataType n,int r);
SeqStack.cpp中添加上面方法的实现:
// 在之前模板基础上增加的功能 template <class DataType> void SeqStack<DataType>::Decimaltor(DataType n,int r) { top = -1; int k; while(n != 0) { k = n % r; Push(k); n = n / r; } while(top != -1) { cout << Pop() << '\t'; } }
main.cpp
#include <iostream> #include "SeqStack.cpp" using namespace std; int main(int argc, const char * argv[]) { SeqStack<int> stack = SeqStack<int>(); int n, r; cout << "请输入一个十进制数字 : " << endl; cin >> n; cout << "需要转换成的进制 : " << endl; cin >> r; stack.Decimaltor(n, r); cout << endl; return 0; }
三、心得和体会
一开始看到十进制转二进制这个题目出现在栈和队列的练习中,一开始我还是有疑惑的,这转换进制和这个数据结构有关系吗?可是仔细一想进制转换的算法,突然发现其中的相似的先进后出的特点。当然,我写的这个模板也可以应用于十进制转任意进制。这里就体现了C++模板的便利,栈的用途。
在空闲的时候更新的地方,大家可以捧一下场,嘿嘿~
新世界的大门 (๑•̀ㅂ•́)و✧
相关文章推荐
- 数据结构|顺序队列的实现(实验3.3)
- 实验3.3 设计算法并写出代码,实现一个十将二进制转换成2进制数。
- while循环实现十进制转二进制
- 操作系统模拟内存管理实验,C语言链表实现,附源码
- [CS231n-assignment2] Python从零实现的CNN在CIFAR-10上的实验报告
- 5.26在网上看到的方法,实现图形缩放、对齐、图形修改后进行dirty check。(未实验过)
- 哈工大计算机系统安全实验二补充——passwd程序功能的实现
- 实验一:win7下实现文件共享和访问
- ★实验 9-2 1. 补全代码,实现以下功能 a) 调用pipe()创建无名管道 b) 调用fork创建一个子进程 c) 在父进程中向管道写入 “helloworld”, 同时打印出PID和写入
- 线性表综合实验之单链表的实现
- linux 内核实验六实现
- 实验二 直线DDA生成算法的GDI实现
- ASP.Net课堂--实验1(登录注册页面实现)
- (实验二) --- 图像旋转变换---matlab实现
- 实验三 栈和队列的基本操作实现及其应用 (1)
- GoldenGate实现oracle和sqlserver双向数据同步(转载文章,结合我的另一篇文章实验可行)
- 实验:两台机器实现httpd服务和php-fpm模块
- 软件工程(C编码实践篇)”实验报告 实验四:用可重用的链表模块来实现命令行菜单小程序V2.5
- 机械版CG 实验6 简单光照明模型实现
- 递归实现顺序输出整数-2017-2018-1 实验10.2 递归函数等(课堂练习)