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

发布时间 - 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


相关推荐: 什么是JavaScript解构赋值_解构赋值有哪些实用技巧  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  bootstrap日历插件datetimepicker使用方法  如何快速生成可下载的建站源码工具?  如何在万网开始建站?分步指南解析  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  IOS倒计时设置UIButton标题title的抖动问题  如何解决hover在ie6中的兼容性问题  如何续费美橙建站之星域名及服务?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  如何自定义建站之星模板颜色并下载新样式?  如何快速生成ASP一键建站模板并优化安全性?  如何用PHP工具快速搭建高效网站?  如何有效防御Web建站篡改攻击?  常州企业网站制作公司,全国继续教育网怎么登录?  如何在新浪SAE免费搭建个人博客?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  Swift中switch语句区间和元组模式匹配  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  用yum安装MySQLdb模块的步骤方法  浅谈redis在项目中的应用  Laravel如何配置任务调度?(Cron Job示例)  如何彻底删除建站之星生成的Banner?  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何在IIS中新建站点并配置端口与物理路径?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何在不使用负向后查找的情况下匹配特定条件前的换行符  开心动漫网站制作软件下载,十分开心动画为何停播?  网站优化排名时,需要考虑哪些问题呢?  中山网站推广排名,中山信息港登录入口?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何在VPS电脑上快速搭建网站?  如何在Ubuntu系统下快速搭建WordPress个人网站?  如何为不同团队 ID 动态生成多个独立按钮  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  网站建设要注意的标准 促进网站用户好感度!  Laravel storage目录权限问题_Laravel文件写入权限设置  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Laravel中的Facade(门面)到底是什么原理  如何用AI帮你把自己的生活经历写成一个有趣的故事?  图册素材网站设计制作软件,图册的导出方式有几种?  Laravel如何升级到最新版本?(升级指南和步骤)