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

发布时间 - 2026-01-11 02:06:12    点击率:

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

问题描述:

 将一个非负的十进制整数N转换为另一个等价的基为B的B进制数的问题。

解答:按除2取余法,得到的余数依次是1、0、1、1,则十进制数转化为二进制数为1101。

     分析:由于最先得到的余数是转化结果的最低位,最后得到的余数是转化结果的最高位,因此很容易用栈来解决。

代码如下:

#include<stdio.h> 
#include<malloc.h> 
#include<stdlib.h> 
typedef struct Node 
{ 
 int data; 
 struct Node * pNext; 
}NODE ,*PNODE; 
typedef struct Stack 
{ 
 PNODE pTop; 
 PNODE pBottom; 
}STACK,*PSTACK; 
 
bool empty(PSTACK ps) 
{ 
 if(ps->pTop == ps->pBottom) 
 return true; 
 else return false; 
} 
void initstack(PSTACK ps) 
{ 
 ps->pTop=(PNODE)malloc(sizeof(NODE)); 
 if (NULL == ps->pTop) 
 { 
  printf("初始化失败!\n"); 
  exit(-1); 
 } 
 else 
 { 
 ps->pBottom=ps->pTop; 
 ps->pTop->pNext=NULL; 
 } 
 return ; 
} 
 
void push(PSTACK ps,int val) 
{ 
 PNODE pNew=(PNODE)malloc(sizeof(NODE)); 
 pNew->data=val; 
 pNew->pNext=ps->pTop; 
 ps->pTop=pNew; 
 return; 
} 
void pop(PSTACK ps) 
{ 
 int x; 
 if(empty(ps)) 
 { 
  //printf("出栈失败!"); 
  return ; 
 } 
 else 
 { 
   PNODE p=ps->pTop; 
   x=p->data; 
   ps->pTop=p->pNext; 
   free(p); 
   p=NULL; 
   printf("%d",x); 
   return ; 
 } 
} 
int main() 
{ 
 int i,N,B; 
 STACK S; 
 scanf("%d",&N); 
 scanf("%d",&B); 
 initstack(&S); 
 while(N) 
 { 
  push(&S,N%B); 
  N=N/B; 
 } 
 while(S.pBottom!=NULL) 
 { 
  pop(&S); 
   
 } 
 system("pause"); 
 return 0; 
} 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 数据结构  # 中数制转换  # C语言栈的应用  # C语言数据结构中数制转换实例代码  # python常见数制转换实例分析  # JavaScript中各数制转换全面总结  # 很容易  # 希望能  # 谢谢大家  # 转换为  # 二进制数  # 十进制数  # include  # malloc  # lt  # gt  # stdio  # stdlib  # int  # data  # pNext  # typedef  # struct  # Node  # 进制数 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Linux安全能力提升路径_长期防护思维说明【指导】  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  怎么用AI帮你设计一套个性化的手机App图标?  如何用腾讯建站主机快速创建免费网站?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  用yum安装MySQLdb模块的步骤方法  如何在阿里云部署织梦网站?  利用JavaScript实现拖拽改变元素大小  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Mybatis 中的insertOrUpdate操作  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  JavaScript模板引擎Template.js使用详解  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  如何彻底删除建站之星生成的Banner?  如何用AWS免费套餐快速搭建高效网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  教学论文网站制作软件有哪些,写论文用什么软件 ?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何用西部建站助手快速创建专业网站?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  使用Dockerfile构建java web环境  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  魔方云NAT建站如何实现端口转发?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何在腾讯云免费申请建站?  JavaScript如何操作视频_媒体API怎么控制播放  深圳网站制作培训,深圳哪些招聘网站比较好?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  浅析上传头像示例及其注意事项  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  香港网站服务器数量如何影响SEO优化效果?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  javascript基本数据类型及类型检测常用方法小结  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Laravel安装步骤详细教程_Laravel环境搭建指南  高性价比服务器租赁——企业级配置与24小时运维服务  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel如何配置和使用缓存?(Redis代码示例)  微信小程序 canvas开发实例及注意事项