数据结构实验之栈一:进制转换
题目描述
输入
第二行输入R。
输出
示例输入
1279 8
示例输出
2377
#include <stdio.h> #include <stdlib.h> #include<malloc.h> #define STACK_INIT_SIZE 100 //存储空间初始分配量 #define STACKINCREMENT 10//存储空间分配增量 #define OK 1 #define OVERFLOW -1 #define ERROR -2 typedef int SElemType; typedef struct {SElemType *base; //在栈构造之前和销毁之后, base的值为NULLSElemType *top;//栈顶指针;int stacksize; //当前已分配的存储空间,以元素为单位; }SqStack;
void InitStack(SqStack &S)// 构造一个空栈S; {S.base=(SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base) exit(OVERFLOW);//存储分配失败;S.top=S.base;S.stacksize=STACK_INIT_SIZE; }
void Push(SqStack &S,SElemType e)// 插入元素e为新的栈顶元素; {if(S.top-S.base>=S.stacksize){S.base=(SElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); // 当前存储空间已满,增加分配;if(!S.base) exit(OVERFLOW);// 存储分配失败;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;//增加存储容量;}*S.top++=e; }
int Pop(SqStack &S,SElemType &e)//若栈不空,则删除S的栈顶元素,并//用e返回其值,并返回OK,否则返回//ERROR; {if(S.top==S.base) return ERROR;e=*--S.top;return OK; } int GetTop(SqStack S,SElemType &e) {if(S.top==S.base) return ERROR;e=*(S.top-1);return OK; } void conversion(SqStack &S,int n,int r)//对十进制数n转换成r进制数; {int t;while(n){t=n%r;n=n/r;Push(S,t);//进栈;} } void PutStack(SqStack &S)//栈内元素的输出; {while(S.top>S.base){S.top--;printf("%d",*(S.top));}printf("\n"); } int main() {SqStack S;//栈的定义;InitStack(S);//栈的初始化;int n,r;scanf("%d\n%d",&n,&r);conversion(S,n,r);//十进制数n转换为r进制数;PutStack(S);//栈内元素的输出;return 0; }
数据结构实验之栈一:进制转换相关推荐
- 数据结构作业--链栈实现进制转换
十进制转换为2,8,16进制 #include <stdio.h> #include <stdlib.h> #include <string.h>/*此处是链栈数据 ...
- 数据结构学习笔记:利用栈实现进制转换
数据结构学习笔记:利用栈实现进制转换 一.除基倒取余法示意图 二.编写十进制转换成二进制Python程序 1.源代码 2.运行结果 其实Python提供了一
- 数据结构实验三 用栈实现进制转换和计算器
在c++中栈已经有stl容器定义过了,在这里面我就不写栈的定义的那部分了(因为太麻烦了) 进制转换非常简单,尤其是这次只要求了十以内进制的转换,我们只需要先输入要转换的进制t,然后输入要转换的数n,每 ...
- C语言中用栈实现进制转换,利用栈实现进制转换问题
进制转换问题 建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换. 输入 输入只有一行,就是十进制整数. 输出 转换后的二进制数. 样例输入 10 样例输出 1010 十进制怎么转为二进制?十进制 ...
- 基础算法4 —— 结构体(成绩统计) + 栈(模拟进制转换 + 优秀的拆分) + 指针
结构体 结构体的实际应用场景: 在实际问题中,一组数据往往具有不同的数据类型.比如,某次期末考试中要记录一个学生的考试信息,除了有姓名(char)外,还有班级(int).性别(char).语文.数学. ...
- 用C语言栈实现进制转换
#include<stdio.h> #include<stdlib.h> #include<windows.h> #define MAXSIZE 100 typed ...
- C语言栈实现进制转换
栈-10进制任意转换 设计思路 例如讲10进制转换为2进制计算思路为: 利用循环将每一个余数都压入栈中,再遍历出栈 转换代码: /*进制转换 */ scStack *sysConvert(int nu ...
- python【数据结构与算法】各进制转换-使用内置函数
文章目录 1 其他进制向十进制之间的转换 2 十进制向其他进制之间的转换 2.1 使用内置函数来转换 2.2 使用字符串格式化来转化 1 其他进制向十进制之间的转换 string1 = '101010 ...
- js 栈(进制转换)
<!DOCTYPE html> Document posted @ 2017-12-07 19:33 mysure 阅读(...) 评论(...) 编辑 收藏 刷新评论刷新页面返回顶部 转 ...
- 利用栈和递归实现进制转换——数据结构实验报告
一.实验名称:栈的应用--进制转换 二.实验目的 熟练掌握栈的两种存储方式的具体实现过程,并分别使用递归和非递归两种方式,实现进制转换. 三.实验要求 顺序栈和链栈两种存储方式任选一种,实现从十进制到 ...
最新文章
- vivo Y93s的USB调试模式在哪里,打开vivo Y93sUSB调试模式的步骤
- 【译】Swift算法俱乐部-Boyer-Moore字符串搜索
- UITextField的属性与程序启动后一系列方法
- 用pytorch加载训练模型
- Scala里的类型擦除 - type erase
- 很火的WiFi6,了解一下
- 【bzoj1704】[Usaco2007 Mar]Face The Right Way 自动转身机 贪心
- 【MySQL】MySQL数据库SQL优化工具 SQL Tuning Expert for MySQL(收费)
- 团队-象棋游戏-成员简介及分工
- python画猪头_使用Python画小猪佩奇 社会人标配
- JavaScript中的数组 1
- Unity Shader播放序列帧动画
- linux上apache的安装
- Atitit 知识结构化的艺术 目录 1. 知识信息结构化脑图	2 1.1. 散乱化模式	2 2. 直线排列	2 2.1.1. 直排	2 2.1.2. 链表模式	2 3. 树形排列	2 3.1.
- 改变PDF阅读器、CAJViewer的背景颜色
- RPGMakerMV学习笔记(二)—— 制作第一个RPG游戏
- BZOJ4049][CERC2014]Mountainous landscape-[线段树+凸包+二分]
- 昆明oracle考试点,Oracle认证考试知识点:修改sid的步骤
- 秦曾昌人工智能课程---1、机器学习中的数学基础
- Altium 拖动已布线的双排焊盘
热门文章
- 现代软件工程 第二章 【个人技术】 练习与讨论
- java 参数代替所有类_Java中的常用类
- 数据增强 transform_深度学习-Pytorch框架学习之数据处理篇
- shell 停止tomcat_Linux停止tomcat运行
- 码工里开关灯为什么遮罩层在下面_装修公司为什么推荐无主灯设计?
- java修改已创建程序界面_Java应用程序的Web用户界面
- php 分布式数据库查询,分布式数据库
- r矢量球坐标系旋度_矢量与场论 | 场论
- python 实现显著性检测_强!汽车车道视频检测:python+OpenCV为主实现
- android 截图 listview,Android屏幕及view的截图实例详解