数据结构-栈篇----应用:进制转换(c语言版)

2024-02-22 11:32

本文主要是介绍数据结构-栈篇----应用:进制转换(c语言版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#include<stdio.h>
#define MAXSIZE 100 //空间大小
typedef struct   //结构体定义栈的栈顶,栈尾和栈的空间大小
{
int *base;
int *top;
int stacksize;
}SqStack;
bool InitStack(SqStack &S)  //定义一个栈
{
S.base = new int[MAXSIZE];   //为栈开辟空间大小为MAXSIZE的栈
if (!S.base)
return false;
S.top = S.base;
S.stacksize = MAXSIZE;
return true;
}
bool StackEmpty(SqStack S)   //判定栈是否为空
{
if (S.top == S.base)
return true;
else
return false;
}
int StackLength(SqStack S)   //输出栈的实际长度
{
return S.top - S.base;
}
bool Push(SqStack &S,int e)  //入栈操作
{
if ((S.top - S.base) == S.stacksize)
return false;
*S.top++ = e;
return true;
}
bool Pop(SqStack &S, int &e)  //出栈操作
{
if (S.top == S.base)
return false;
e = *(--S.top);
return true;

int main(){     //主函数
SqStack q;    //定义类型为SqStack的栈
int n, k,p;      // 定义所需变量
char num[] = "0123456789ABCDEF";  //此字符数组主要是考虑了十六进制的输出情况
printf("请输入需要转换为多少进制(包括二进制,八进制,十六进制):");
scanf_s("%d", &p);
InitStack(q);    //为栈开辟空间
printf("请输入一个十进制整数:");
scanf_s("%d", &n);
while (n){ 
Push(q, n % p);  //把不同进制求出的余数存入栈
n = n / p;    //把除数结果当成下一次求余的数
}
while (!StackEmpty(q)){
Pop(q, k);
printf("%c", num[k]);   //循环输出
}
return 0;
}

这篇关于数据结构-栈篇----应用:进制转换(c语言版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/735122

相关文章

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject