数据结构实验之栈与队列一:进制转换
来源:互联网 发布:蓝鸟中文编程 编辑:程序博客网 时间:2024/06/03 23:38
数据结构实验之栈与队列一:进制转换
Problem Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Example Input
1279
8
Example Output
2377
思路:进制转换–辗转相除,倒序取余。所以把取余的依次存在栈中(入栈),全存完,在出栈(实现倒序过程–后进先出)
#include <stdio.h>#include <stdlib.h>#include <bits/stdc++.h>#define stackmax 10000 //存储空间初始分配量#define stacknum 10000 //存储空间分配增量using namespace std;typedef int selemtype;typedef struct{ selemtype *base; //栈底指针 selemtype *top; //栈顶指针 int stacksize;} sqstack;int Initstack(sqstack &S){ S.base=(selemtype *)malloc(stackmax*sizeof(selemtype)); if (! S.base) exit(0); //存储分配失败 S.top=S.base; //空栈条件 S.stacksize=stackmax; //栈的存储空间 return 1;}int push(sqstack &S,int e) //创建一个栈{ if(S.top-S.base >= S.stacksize)// 当前存储空间已满,增加分配 { { S.base = (selemtype *)realloc(S.base,(S.stacksize+stacknum)*sizeof(selemtype)); if (! S.base ) return 0; // 存储分配失败 S.top = S.base + S.stacksize; S.stacksize += stacknum; //增加存储容量 } }*S.top++=e; return 1;}void conversion(sqstack &S, int n, int r) //进制转换{ int t; while(n) { t=n%r; n=n/r; push(S,t); }}void put(sqstack &S) //出栈{ while(S.top>S.base) { cout<<*(S.top-1); S.top--; }}int main(){ int n,r; cin>>n>>r; sqstack S; Initstack(S); if(n==0) printf("0\n"); else { conversion(S,n,r); put(S); } return 0;}
阅读全文
0 0
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列一:进制转换
- 数据结构实验之栈与队列进制转换1
- 【栈与队列】SDUT练习2—数据结构实验之栈一:进制转换
- SDUT 2131 数据结构实验之栈与队列一:进制转换
- 2131 数据结构实验之栈与队列一:进制转换
- 2131-数据结构实验之栈与队列一:进制转换
- 20170928_二叉树中两个节点的最低公共祖先
- DNS的递归查询与迭代查询
- 数据结构实验之链表三:链表的逆置
- Android之adb jdwp获取debug版本app的进程Id
- http://blog.csdn.net/churximi/article/details/61210129
- 数据结构实验之栈与队列一:进制转换
- JS 基础 —— JavaScript 关键字(keyword)与保留字
- 复原二叉树
- bean标签的属性和spring属性注入
- ASP.NET学生成绩信息管理系统(源码+论文)
- Tomcat启动web项目时,环境的配置
- 数据结构实验之链表四:有序链表的归并
- Windows系统上MySQL数据库更改数据存储路径
- 堆排序 Python实现(转)