欢迎来到天天文库
浏览记录
ID:60751131
大小:120.00 KB
页数:7页
时间:2020-12-13
《十进制转换八进制算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、__________________________________________________题目:数制转换问题1.需求分析将十进制数N转换成八进制数是计算机实现计算的基本问题,解决方案很多,其中最简单的方法是除8取余法。1)本方案采用顺序栈的方式模拟整个过程。其原理如下:例子:(1348)10=(2504)8NNdiv8Nmod8134816841682102125202从中可以看出,最先产生的余数4是转换加过的最低位,这正好符合栈的“后进先出”的特性。2)功能:从键盘输入任意一个非负十进制整数,输出与
2、其等值的八进制数;若输入一个负数,则显示输入错误,请重新输入。3)测试数据:(1348)10=(2504)8,(0)10=(0)8,(-1234)10输入数据错误。2.概要设计定义顺序栈类型,由键盘输入非负十进制整数N,执行以下循环操作:N%8入栈,N=N/8,直至N=0。主要函数由建立空栈Initsqstack()、入栈Push()、出栈Pop()和main()函数组成。过程中函数调用关系图如下:3.详细设计1)数据类型定义structSqstack{int*bottom;int*top;intmaxsize
3、;};2)系统主要子程序详细设计A.建立空栈intInitsqstack(Sqstack&s){收集于网络,如有侵权请联系管理员删除__________________________________________________s.bottom=(int*)malloc(sizeof(int)*20);if(s.bottom){s.top=s.bottom;s.maxsize=20;return1;}elsereturn0;}B.入栈voidPush(Sqstack&s,inte){*s.top++=e;}
4、C.出栈voidPop(Sqstack&s,int&e){//出栈e=*--s.top;}1.测试分析收集于网络,如有侵权请联系管理员删除__________________________________________________1.源程序清单收集于网络,如有侵权请联系管理员删除__________________________________________________#includeusingnamespacestd;structSqstack{int*bottom;int
5、*top;intmaxsize;};intInitsqstack(Sqstack&s){//建立空栈s.bottom=(int*)malloc(sizeof(int)*20);if(s.bottom){s.top=s.bottom;s.maxsize=20;return1;}elsereturn0;}voidPush(Sqstack&s,inte){//入栈*s.top++=e;}voidPop(Sqstack&s,int&e){//出栈e=*--s.top;}intStackEmpty(Sqstack&s){
6、//判断是否为空栈if(s.top==s.bottom)return1;elsereturn0;}intmain(){Sqstacks;intN,e;Initsqstack(s);cout<<"请输入一个非负十进制整数:"<>N;if(N<0)cout<<"输入数据错误,请重新输入:"<7、________________________________________}cout<<"输出对应的八进制数:"<8、定义二叉树的结点类型 typedefBinTNode*BinTree;//定义二叉树的指针 intNodeNum,leaf;//NodeNum为结点数,leaf为叶子数 //==========基于先序遍历算法创建二叉树============== //=====要求输入先序序列,其中加入虚结点"#"以示空指针的位置========== BinTreeCreatBinTree(void
7、________________________________________}cout<<"输出对应的八进制数:"<8、定义二叉树的结点类型 typedefBinTNode*BinTree;//定义二叉树的指针 intNodeNum,leaf;//NodeNum为结点数,leaf为叶子数 //==========基于先序遍历算法创建二叉树============== //=====要求输入先序序列,其中加入虚结点"#"以示空指针的位置========== BinTreeCreatBinTree(void
8、定义二叉树的结点类型 typedefBinTNode*BinTree;//定义二叉树的指针 intNodeNum,leaf;//NodeNum为结点数,leaf为叶子数 //==========基于先序遍历算法创建二叉树============== //=====要求输入先序序列,其中加入虚结点"#"以示空指针的位置========== BinTreeCreatBinTree(void
此文档下载收益归作者所有