1 / 4
文档名称:

用栈实现十进制转2进制 8进制 16进制.docx

格式:docx   大小:15KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用栈实现十进制转2进制 8进制 16进制.docx

上传人:mh900965 2018/4/11 文件大小:15 KB

下载得到文件列表

用栈实现十进制转2进制 8进制 16进制.docx

文档介绍

文档介绍:#include <>
#include <>
#define OK 1
#define ERROR -1
#define OVERFLOW -2
#define STACK_INIT_SIZE 50
#define STACKINCREMENT 10
typedef int SElemType;
typedef int Status;
typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
} SqStack;
Status InitStack(SqStack &S)
{//构建一个空栈
=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if (!) exit (OVERFLOW); //存储分配失败
= ;
= STACK_INIT_SIZE;
return OK;
}
Status DestroyStack( SqStack &S)
{ if (!) return ERROR; // 若栈未建立(尚未分配栈空间)
free (); // 回收栈空间
= = NULL;
= 0;
return OK;
} // DetroyStack
Status Push(SqStack &S, char e)
{ //插入元素e为新的栈顶元素
if(->=) {//栈满,追加存储空间
=(SElemType*)realloc(, (+STACKINCREMENT)*sizeof(SElemType));
if(!) return OVERFLOW; //存储分配失败
=+;
+=STACKINCREMENT;
}
*++=e;
return OK;
}//Push
Status Pop(SqStack &S, char &e)
{ //若栈不空,则删除S的栈顶元素
//用e返回其值,并返回OK;否则返回ERROR
if(==) return ERROR;
e=*(--);
return OK;
}//Pop
Status two()
{ SElemType n;char e;
SqStack S;
InitStack(S); //建空栈
printf("请输入一个十进制正整数:\n"); //该函数未检查是否为正数和整数
scanf("%d",&n);
printf("的2进制是:");
while(n)
{
Push(S,n%2); // N/2余数进栈
n=n/2; //整除运算
}
whil