当前位置: 首页 > ops >正文

数据结构(四)——栈的应用—数制转换

利用栈进行数制转换:

十进制转换八进制:先将十进制数除以八得到余数,余数入栈,然后将得到的商继续除以八,直到商为零

#include <stdio.h>
#include <stdlib.h>#define MAXSIZE 100//数制转换//定义链表节点结构体
typedef struct{int data[MAXSIZE];int top;
}Stack;//初始化栈
void InitStack(Stack *S){S->top = -1;  //栈为空
}//判断栈是否为空
int StackEmpty(Stack *S){return S->top == -1;
}//入栈
void Push(Stack *S,int value){if(S->top<MAXSIZE-1){S->data[++(S->top)] = value;}else{printf("Stack overflow!\n");}
}//出栈
void Pop(Stack *S,int *value){if(!StackEmpty(S)){*value = S->data[(S->top)--];}else{printf("Stack underflow!\n");}
}void conversation(){Stack S; //定义栈变量int N,e;//对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数InitStack(&S);  //构造空栈scanf("%d",&N);if(N == 0){printf("0\n");return;}//十进制转八进制while(N){Push(&S,N % 8); //余数入栈N = N / 8; }//输出八进制数while(!StackEmpty(&S)){Pop(&S,&e);printf("%d",e);}printf("\n");
} //conversationint main() {conversation();return 0;
}

http://www.xdnf.cn/news/4771.html

相关文章:

  • Java线程阻塞方法LockSupport.park()/Thread.sleep()/Object.wait()详解:原理、区别
  • java实战(第六篇):统计投票信息
  • [特殊字符]【深圳金融科技交流会】AI大模型如何重塑资管新生态?一线实战干货来了!
  • 极简远程革命:打破公网桎梏,重塑数字生活新体验
  • Vue 3.0中Treeshaking特性
  • Nacos源码—6.Nacos升级gRPC分析二
  • 从SiC到数字孪生:PSR芯片的技术迭代与未来布局
  • windows10 系统显示mov文件格式缩略图
  • 使用Hyper-V 安装Windows11操作系统
  • 缺乏实体人形机器人的主流高精度仿真方案
  • Matlab 分数阶PID控制
  • 数组和指针典型例题合集(一维数组、字符数组、二维数组)
  • python: 列表切片
  • Python Cookbook-7.8 使用 Berkeley DB 数据库
  • 最优化方法Python计算:有约束优化应用——线性Lasso回归预测器
  • 【Go】优化文件下载处理:从多级复制到零拷贝流式处理
  • PyTorchVideo实战:从零开始构建高效视频分类模型
  • 单片机自动排列上料控制程序 下
  • MySQL基础关键_012_事务
  • Modbus RTU 转 PROFINE 网关
  • k8s术语之CronJob
  • 计算机网络-LDP标签发布与管理
  • 4H-SiC 射频功率MESFET 的表面态分析
  • 【自定义指令】(el-table表格内容自动轮播)
  • Elastic:什么是 AIOps?
  • [人机交互]设计,原型建立和构造
  • mysql 数据库初体验
  • Cursor+AI辅助编程-优先完成需求工程结构化拆解
  • 【前端分享】CSS实现3种翻页效果类型,附源码!
  • 解决Ceph 14.2.22 Nautilus版本监视器慢操作问题的实践指南