人人范文网 范文大全

数据结构实验3——进制转换

发布时间:2020-03-04 01:13:14 来源:范文大全 收藏本文 下载本文 手机版

#include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define NULL 0 #define OVERFLOW 0 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef int Status; typedef int SElemType;

typedef struct {

SElemType *base;

SElemType *top;

int stacksize; }SqStack; Status InitStack (SqStack &S) {

S.base=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));

if(!S.base) exit (OVERFLOW);

S.top=S.base;

S.stacksize=STACK_INIT_SIZE;

return OK; }

Status GetTop(SqStack S,SElemType &e) {

if(S.top==S.base) return ERROR;

e= *(S.top-1);

return OK; }

Status Push(SqStack &S,SElemType 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;

return OK; }

Status Pop(SqStack &S,SElemType &e) {

if(S.top==S.base)return ERROR;

e= *--S.top;

return OK; }

Status StackEmpty(SqStack S) {

if(S.top==S.base)return TRUE;

else return FALSE; }

int main() {

int N,t;

SElemType e; SqStack S; InitStack(S); printf(\"需要转化的十进制数:\\n\");

while(scanf(\"%d\",&N)!=EOF)

{

printf(\"需要转化成(2,8,16):\\n\");

scanf(\"%d\",&t);

while(N)

{

Push(S,N%t);

N=N/t;

}

printf(\"转化后的数是:\\n\"); while(!StackEmpty(S))

{

Pop(S,e); switch (e) {

case 10: printf(\"A\");break;

case 11: printf(\"B\");break;

case 12: printf(\"C\");break;

case 13: printf(\"D\");break;

case 14: printf(\"E\");break;

case 15: printf(\"F\");break;

default: printf(\"%d\",e);break;

}

} } getchar(); getchar(); return 0; }

进制转换

进制转换(版)

进制与进制转换说课稿

进制与进制转换说课稿

进制的转换说课稿,,

常用进制及其转换

进制转换汇报课教案

计算机中的进制转换 教案

进制之间的相互转换

2进制和10进制的转换

数据结构实验3——进制转换
《数据结构实验3——进制转换.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档