数据结构(C语言版)数制转换,用栈来实现十进制换成八进制的数
2013-09-01 22:32
295 查看
数据结构(C语言版)数制转换,用栈来实现十进制换成八进制的数。请各位品评品评。
#define stack_size 100
#define strack_ent 10
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -2
#include<iostream>
using namespace std;
typedef struct {
int *base;
int *top;
int stacksize;
}sqstack;
int initstack(sqstack &s){
s.base=(int *)malloc(stack_size*sizeof(int));
if(!s.base)exit(OVERFLOW);
s.top=s.base;
s.stacksize=stack_size;
return 1;
}
int push(sqstack &s,int e){
if(s.top-s.base>=s.stacksize){
s.base=(int *)realloc(s.base,(s.stacksize+strack_ent)*sizeof(int));
if(!s.base)exit(OVERFLOW);
s.top=s.base+s.stacksize;
s.stacksize+=strack_ent;
}
*s.top++=e;
return 1;
}
int stackempty(sqstack s){
if(s.top==s.base)
return ERROR;
}
int pop(sqstack &s,int &e){
if(s.top==s.base)
return ERROR;
e=*--s.top;
return e;
}
int main(){
sqstack s;
int e,n;
initstack(s);
cin>>n;
while(n){
push(s,n%8);
n=n/8;
}
while(stackempty(s))
{
pop(s,e);
printf("%d",e);
}
printf("\n");
return 0;
}
#define stack_size 100
#define strack_ent 10
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -2
#include<iostream>
using namespace std;
typedef struct {
int *base;
int *top;
int stacksize;
}sqstack;
int initstack(sqstack &s){
s.base=(int *)malloc(stack_size*sizeof(int));
if(!s.base)exit(OVERFLOW);
s.top=s.base;
s.stacksize=stack_size;
return 1;
}
int push(sqstack &s,int e){
if(s.top-s.base>=s.stacksize){
s.base=(int *)realloc(s.base,(s.stacksize+strack_ent)*sizeof(int));
if(!s.base)exit(OVERFLOW);
s.top=s.base+s.stacksize;
s.stacksize+=strack_ent;
}
*s.top++=e;
return 1;
}
int stackempty(sqstack s){
if(s.top==s.base)
return ERROR;
}
int pop(sqstack &s,int &e){
if(s.top==s.base)
return ERROR;
e=*--s.top;
return e;
}
int main(){
sqstack s;
int e,n;
initstack(s);
cin>>n;
while(n){
push(s,n%8);
n=n/8;
}
while(stackempty(s))
{
pop(s,e);
printf("%d",e);
}
printf("\n");
return 0;
}
相关文章推荐
- c语言之辗转相除法实现十进制转换为八进制
- PHP实现各进制间的转换 十进制与二进制、八进制、十六进制间的互换
- 用java语言实现各种进制转换(二进制,八进制,十进制,十六进制互转,主要使用Java Swing技术)
- 十进制转化为八进制--栈实现
- 【数据结构】 栈实现 十进制到八进制的转化
- C语言实现十进制转八进制
- 递归和while循环实现十进制转八进制
- C++实现二进制、八进制、十进制、十六进制的相互转换
- 顺序栈实现十进制和八进制之间的转换
- C语言通过栈实现将十进制转为八进制输出
- 进制转换器(用顺序栈实现)(可实现简单的二进制或八进制或十进制的转换)
- 【C语言】简易实现八进制转十进制(最大四位数)
- 进制转换 十进制转化为八进制 通过栈实现
- 用堆栈实现四则运算(不带括号)、十进制转八进制
- 用递归函数实现十进制转八进制
- 用栈实现十进制转八进制在Win-TC下运行(数据结构)
- [置顶] 栈应用:实现二进制转八进制、十进制、十六进制
- java函数实现进制转换与java实现八进制到十进制的转换(百练OJ:2735:八进制到十进制)
- C语言实现数值转换(十进制转八进制)
- 关于使用查表法实现十进制到二进制,八进制,十六进制的转换