十进制转换八进制算法

十进制转换八进制算法

ID:1498976

大小:107.02 KB

页数:6页

时间:2017-11-12

十进制转换八进制算法_第1页
十进制转换八进制算法_第2页
十进制转换八进制算法_第3页
十进制转换八进制算法_第4页
十进制转换八进制算法_第5页
资源描述:

《十进制转换八进制算法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、题目:数制转换问题1.需求分析将十进制数N转换成八进制数是计算机实现计算的基本问题,解决方案很多,其中最简单的方法是除8取余法。1)本方案采用顺序栈的方式模拟整个过程。其原理如下:例子:(1348)10=(2504)8NNdiv8Nmod8134816841682102125202从中可以看出,最先产生的余数4是转换加过的最低位,这正好符合栈的“后进先出”的特性。2)功能:从键盘输入任意一个非负十进制整数,输出与其等值的八进制数;若输入一个负数,则显示输入错误,请重新输入。3)测试数据:(1348)10=(250

2、4)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;};2)系统主要子程序详细设计A.建立空栈intInitsqstack(Sqstack&s){s.bo

3、ttom=(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;}C.出栈voidPop(Sqstack&s,int&e){//出栈e=*--s.top;}1.测试分析1.源程序清单#includeusingnamespacestd;structSqstack{int*bottom;in

4、t*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){

5、//判断是否为空栈if(s.top==s.bottom)return1;elsereturn0;}intmain(){Sqstacks;intN,e;Initsqstack(s);cout<<"请输入一个非负十进制整数:"<>N;if(N<0)cout<<"输入数据错误,请重新输入:"<

6、le(!StackEmpty(s)){Pop(s,e);cout<

7、,leaf为叶子数//==========基于先序遍历算法创建二叉树==============//=====要求输入先序序列,其中加入虚结点"#"以示空指针的位置==========BinTreeCreatBinTree(void){BinTreeT;charch;if((ch=getchar()())=='')return(NULL);//读入#,返回空指针else{T=(BinTNode*)malloc(sizeof(BinTNode));//生成结点T->data=ch;T->lchild=CreatBi

8、nTree();//构造左子树T->rchild=CreatBinTree();//构造右子树return(T);}}voidPostorder(BinTreeT){if(T){Postorder(T->lchild);//后序遍历左子树Postorder(T->rchild);//后序遍历右子树printf("%c",T->data);//访问结点}}intTreeDe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。