栈的应用——数制转换
来源:互联网 发布:matlab 无约束最优化 编辑:程序博客网 时间:2024/06/05 05:08
#include<stdio.h>
#include<stdlib.h>
#include<process.h>
#define TRUE 1
#define FLASE 0
#define OK 1
#define ERROR 0
#define NULL 0
#define OVERFLOW -1
#define stack_init_size 100
#define stackincrement 10
typedef int status;
typedef int SElemType;
typedef struct LNode{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack,*LinkStack;
status InitStack(SqStack &s)
{//初始化建栈
s.base=(SElemType *)malloc(stack_init_size*sizeof(SElemType));
if(!s.base) return ERROR;
s.top=s.base;
s.stacksize=stack_init_size;
return OK;
}
status Push(SqStack &s,SElemType e)
{//将元素e压入栈中
if(s.top-s.base>=s.stacksize)//栈满,追加存储空间
{
s.base=(SElemType*)realloc(s.base,(stack_init_size+stackincrement)*sizeof(SElemType));
if(!s.base) exit(OVERFLOW);
s.top=s.base+s.stacksize;
s.stacksize+=stackincrement;
}
*s.top++=e;
return OK;
}
status Pop(SqStack &s,SElemType &e)
{//讲栈顶元素取出并赋值给e
if(s.base==s.top)//若栈不空
return ERROR;
e=*--s.top;
return OK;
}
void conversion()
{//数制转换函数
SqStack s;
SElemType e;
int N,n;
InitStack(s);
printf("请输入一个十进制的数N和想要转换的进制n:");
scanf("%d %d",&N,&n);
if(n==16)
{
while(N)
{
if((N%n)>9)
{
Push(s,N%n+55);
N=N/n;
}
else {
Push(s,N%n);
N=N/n;
}
}
while(s.base!=s.top)
{
Pop(s,e);
if(e>9)
printf("%c",e);
else printf("%d",e);
}
printf("\n");
}
else {
while(N)
{
Push(s,N%n);
N=N/n;
}
while(s.base!=s.top)
{
Pop(s,e);
printf("%d",e);
}
printf("\n");
}
}
int main()
{
conversion();
return 0;
}
#include<stdlib.h>
#include<process.h>
#define TRUE 1
#define FLASE 0
#define OK 1
#define ERROR 0
#define NULL 0
#define OVERFLOW -1
#define stack_init_size 100
#define stackincrement 10
typedef int status;
typedef int SElemType;
typedef struct LNode{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack,*LinkStack;
status InitStack(SqStack &s)
{//初始化建栈
s.base=(SElemType *)malloc(stack_init_size*sizeof(SElemType));
if(!s.base) return ERROR;
s.top=s.base;
s.stacksize=stack_init_size;
return OK;
}
status Push(SqStack &s,SElemType e)
{//将元素e压入栈中
if(s.top-s.base>=s.stacksize)//栈满,追加存储空间
{
s.base=(SElemType*)realloc(s.base,(stack_init_size+stackincrement)*sizeof(SElemType));
if(!s.base) exit(OVERFLOW);
s.top=s.base+s.stacksize;
s.stacksize+=stackincrement;
}
*s.top++=e;
return OK;
}
status Pop(SqStack &s,SElemType &e)
{//讲栈顶元素取出并赋值给e
if(s.base==s.top)//若栈不空
return ERROR;
e=*--s.top;
return OK;
}
void conversion()
{//数制转换函数
SqStack s;
SElemType e;
int N,n;
InitStack(s);
printf("请输入一个十进制的数N和想要转换的进制n:");
scanf("%d %d",&N,&n);
if(n==16)
{
while(N)
{
if((N%n)>9)
{
Push(s,N%n+55);
N=N/n;
}
else {
Push(s,N%n);
N=N/n;
}
}
while(s.base!=s.top)
{
Pop(s,e);
if(e>9)
printf("%c",e);
else printf("%d",e);
}
printf("\n");
}
else {
while(N)
{
Push(s,N%n);
N=N/n;
}
while(s.base!=s.top)
{
Pop(s,e);
printf("%d",e);
}
printf("\n");
}
}
int main()
{
conversion();
return 0;
}
阅读全文
0 0
- 栈的应用——数制转换
- 栈的应用——数制转换
- 栈的应用——数制转换
- 栈的应用—数制转换
- 栈的应用举例——数制转换
- 栈操作和应用—数制转换
- 栈的应用:数制转换
- 栈的应用----数制转换
- 栈的应用数制转换
- 数制转换(栈的应用)
- VC栈的应用--数制转换
- 栈的应用之数制转换
- 栈的应用之数制转换
- 栈的基本应用-数制转换-数据结构
- 栈的应用举例----数制转换
- 栈的应用之数制转换
- 栈在数制转换上的应用
- 栈的应用之数制转换
- shell编程 if语句
- COGS-2258 复仇的序幕曲(动态树分治)
- 计算机网络环境的搭建
- PTA-自测-4 Have Fun with Numbers
- Primer (四)
- 栈的应用——数制转换
- 51nod 1083 矩阵取数问题
- linux下挂载win问题
- Keras入门(2)——麻雀虽小,五脏俱全
- 正则表达式入门之字符匹配
- 百度云盘限速不用怕,试试这个技巧吧
- Java互联网架构学习之page分页
- 天天爱跑步NOIP
- SAP中XML文件与内表的相互转换