《数据结构(严蔚敏版)》学习笔记(三)——栈实现数制转换
来源:互联网 发布:贵阳房价上涨知乎 编辑:程序博客网 时间:2024/05/22 15:59
《数据结构(严蔚敏版)》学习笔记(三)——栈实现数制转换
当S.top == S.base 时,栈为空;
当S.top - S.base >= S.stacksize 时,栈空间满;
转换原理:N = (N div d) * d + N mod d;
NN div 8 N mod 8
1348168 4
16821 0
212 0
20 2
如下代码为10进制转8进制程序:
<span style="font-size:14px;">/*------$栈的应用——数制转换$-------*/#include <stdio.h>#include <stdlib.h>#include <string.h>//初始定义typedef intElemType;#defineMAX_SIZE100typedef int Status;#defineOVERFLOW-1#defineOK1#defineERROR0#define TRUE1#defineFALSE0/*动态顺序栈-SqStack*/ typedef struct{ElemType*base;ElemType*top;intstacksize;}SqStack;</span>
<span style="font-size:14px;">//初始化栈Status InitStack(SqStack &S){if(!(S.base = (ElemType *)malloc(MAX_SIZE * sizeof(ElemType))))exit(OVERFLOW);S.top = S.base;S.stacksize = MAX_SIZE;return OK;}Status Pop(SqStack &S,ElemType &e){if(S.top == S.base)return ERROR;e = * --S.top;return OK;}Status Push(SqStack &S,ElemType e){if(S.top - S.base >= S.stacksize){S.base = (ElemType *)realloc(S.base,(S.stacksize + MAX_SIZE) * sizeof(ElemType));if(!S.base)exit(OVERFLOW);S.top = S.base + S.stacksize;S.stacksize += MAX_SIZE;}*S.top++ = e;return OK;}Status StackEmpty(SqStack S){if(S.base == S.top)return TRUE;elsereturn FALSE;}/*算法[非负十进制数,转化成八进制数]*/void NumeralTrans(){int N;ElemType e;SqStack S;InitStack(S);scanf("%d",&N);</span><pre name="code" class="cpp"><span style="white-space:pre"></span>while(N){Push(S,N % 8);N = N/8;}while(!StackEmpty(S)){Pop(S,e);printf("%d",e);}}int main(){NumeralTrans();printf("\n");return 0;}
栈中存余数,N替换为商
出栈后即为转制后的数
<span style="white-space:pre"></span>while(N){Push(S,N % 8);N = N/8;}while(!StackEmpty(S)){Pop(S,e);printf("%d",e);}
0 0
- 《数据结构(严蔚敏版)》学习笔记(三)——栈实现数制转换
- 数据结构——栈(附数制转换练习)
- 数据结构—栈应用(一)数制转换
- 数据结构实验五——栈实现数制转换
- 数据结构(七) 顺序栈实现数制转换
- 栈—实现数制转换
- 数据结构实践——数制转换(栈)
- 【数据结构】用栈实现数制的转换
- 《数据结构》算法3.8栈实现数制转换
- 数据结构题典020:栈的应用——数制转换(ANSI C)
- C#栈的实现(数制转换)
- 用栈实现数制转换(java)
- 第六周数据结构实践——数制转换(栈)【项目4 - 数制转换】
- 数制转换(栈)
- 数制转换各种实现 数据结构
- 数据结构(严蔚敏)顺序栈_数制转换
- 【数据结构】栈的应用--数制转换(c++)
- 2015年大二上-数据结构-栈(4)- 数制转换
- 【Java开发】--jdom解析xml-创建xml
- PetShop学习记录----数据库访问
- 单链表排序
- 趣谈直方图均衡化和规定化
- Java发送邮件javax.mail
- 《数据结构(严蔚敏版)》学习笔记(三)——栈实现数制转换
- Memcache基础教程 && Ubuntu 安装Memcache服务
- Big String 二分法的问题
- 网页中多个table嵌套的一些小技巧
- A-B Game
- Tomcat 8熵池阻塞变慢详解
- Activity的Launch mode详解 singleTask正解
- 利用mysql的amoeba实现主从和读写分离
- iOS SDK开发时,有关OC和C++混编造成其它类错误的问题(Compile Sources As Objective-C++)