//数据结构 第三章栈和队列
#include<stdio.h>
#include<stdlib.h>
#define OVERFLOW -2
#define FALSE 0
#define TRUE 1
#define OK 1
#define ERROR 0typedef int Status;
//栈的顺序存储表示#define STACK_INIT_SIZE 100 //存储空间的初始分配量
#define STACKINCREAMENT 10  //存储空间分配增量//栈的元素类型
typedef char SElemType;typedef struct
{SElemType *base;  //构造之前和销毁之后base的值为NULLSElemType *top;   //栈顶指针int stacksize;    //当前已分配的存储空间
}SqStack;
Status InitStack(SqStack *S)
{S->base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S->base) exit(OVERFLOW);//存储分配失败S->top=S->base;S->stacksize=STACK_INIT_SIZE;return OK;
}
Status Push(SqStack *S,SElemType e)
{if(S->top-S->base>=S->stacksize)//栈满,追加存储空间{S->base=(SElemType *)realloc(S->base,(S->stacksize+STACKINCREAMENT)*sizeof(SElemType));if(!S->base) exit(OVERFLOW);S->top=S->base+S->stacksize;S->stacksize+=STACKINCREAMENT;}//入栈操作,完成操作后,top指针加1*S->top++=e;return OK;
}
Status Pop(SqStack *S,SElemType *e)
{if(S->base==S->top) return ERROR;*e=*--S->top;return OK;
}
Status StackEmpty(SqStack S)
{if(S.base==S.top){return TRUE;}else{return FALSE;}
}

十进制数转化为八进制数

void conversion(SqStack *S)
{//对于输入的任意一个非负十进制整数,打印输出其八进制数SElemType quotient;int N;InitStack(S);printf("This is a program that concerts decimal numbers to octal numbers,\nplease enter the decimal number:");scanf("%d",&N);while(N){Push(S,N%8);N=N/8;}while(!StackEmpty(*S)){Pop(S,&quotient);printf("%d",quotient);}printf("\n");
}
void main()
{SqStack S;conversion(&S);
}

顺序堆栈实现数制转换以十进制数转化为八进制数为例相关推荐

  1. 将十进制数转化为八进制数

    将一个十进制整数转化为八进制整数.  例:输入10,输出12 算法思想:辗转相除法,除8模8,并且将余数作为输出位,(但是注意第一次拿到的是最低位,要逆序输出),在此过程若除数大于8,再将除数赋值给被 ...

  2. VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转

    模块包含了下面的各种转换: 二进制转十进制 二进制转化为八进制 二进制转化为十六进制 八进制转化为十进制 八进制转化为二进制 八进制转化为十六进制 十进制转二进制 十进制转化为八进制 十进制转化为十六 ...

  3. 栈的应用--数制转换(十进制数转换为二进制,八进制,十六进制)

    #include<stdio.h> #include<stdlib.h> #define MAXSIZE 1024 typedef int ElemType;typedef s ...

  4. 【数制转换】-十进制数转换成二进制数

    第一部分:整数转换   逐次除2取余法 用2逐次去除待转换的十进制整数,直至商为0时停止:每次所得的余数即为二进制数码,先得到的余数在低位,后得到的余数排在高位. 例子1: 将83转换成二进制数(逐次 ...

  5. java 顺序栈_java用顺序栈实现数制转换 求完整程序!!

    展开全部 用顺序栈实现数制e69da5e6ba9062616964757a686964616f31333335343436转换的Java程序如下:import java.util.Scanner; i ...

  6. 用栈来实现将一个十进制数转换成等值的二进制数或者八进制数

    栈的应用 栈的一个典型应用是将10进制数转换成等值的二进制数,或者八进制数,由于将十进制数转换成二进制数或者八进制数的时候符合栈的"后进先出"的特性,因为其算法思路就是不断取余然后 ...

  7. 4、计算机中的进制数转换(十进制、二进制、八进制、十六进制)

    目录 课前先导 一.计算机中的进制数 十进制(简写:D) 二进制(简写:B) 八进制(简写:Q) 十六进制(简写:H) 二.计算机进制数之间的转换 1.十进制转二进制 2.十进制转八进制 3.十进制转 ...

  8. 小白自学python的编程之路——实现进制数转换(十进制和二进制和八进制的转换)

    小白自学python的编程之路--实现进制数转换 十进制转二进制(整数) 直接上代码,很简单,一些小注意地方我标注了 c=[] a=input("请输入十进制数字:") a=int ...

  9. 数制转换(8进制转化十进制)

    题目描述: 将一个由八进制数字字符组成的字符串转换为与其数值相等的十进制整数.规定输入的字符串最多只能包含5位八进制数字. 输入描述: 一个八进制数,包含不超过5个0~7字符 输出描述: 相应的十进制 ...

  10. C++进制转换(十进制转二进制、八进制、随意进制)

    十进制转二进制: //十进制转二进制 #include<iostream> using namespace std;void printbinary(const unsigned int ...

最新文章

  1. key php 转小写_PHP代码层防护与绕过
  2. 第一个 Hello Worlds ,打开 opener_server.pl 的大门。OPener_Server 第 3 弹
  3. 吃火锅有四忌[转载]
  4. Python 中的特殊方法(定制类):__str__、__cmp__、__len__、数学运算、类型转换、@property运用、__slots__和__call__函数
  5. ligergrid 奇偶行效果_怎么护发才是真的有效果的?
  6. 6-14 数据库高级
  7. VS Code配置C/C++
  8. spring事务介绍 1
  9. Google Protocol Buffers浅析(四)
  10. POJ NOI0101-09 字符菱形
  11. python画曲线图-利用python绘制数据曲线图的实现
  12. [IOS]——播放器AVPlayer的实现
  13. Windows 8 激活信息备份还原方法与工具
  14. 计算机应用与管理四季,[计算机软件及应用]四季PPT.ppt
  15. 学周刊杂志学周刊杂志社学周刊编辑部2022年第24期目录
  16. 文件上传upload-labs靶场通关指南
  17. python自动生成字幕_深度学习实现自动生成图片字幕
  18. 用python找出400多万次KDJ金叉死叉,胜率有多高?附代码
  19. 浅谈 CRTP:奇异递归模板模式
  20. 路由器交换机:配置命令

热门文章

  1. typora中插入分页符markdown,设置字体,居中,调整图像大小
  2. 二、套接字类型与协议设置
  3. 数据-第14课-栈的定义及实现
  4. 结对-贪吃蛇游戏-测试过程
  5. linux下导入mysql数据库命令
  6. Hibernate_02
  7. Linux系统Web网站目录和文件安全权限设置
  8. 《设计模式》组合模式---伊利工厂
  9. shiro+springmvc+mybatis【转】
  10. Windows button控件(按钮控件)