数据结构第3章:数制转换的完整代码此代码在VC++ 6.0 及Dev-C++下编译通过。
#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
#define  STACK_INIT_SIZE  100
#define  STACKINCREMENT  10
typedef struct
{
int  *base;
int  *top;
int  stacksize;
}SqStack;
int InitStack(SqStack &S)
{
S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));
if (!S.base) exit(-2);

S.stacksize = STACK_INIT_SIZE;
return 1;
}
int DestroyStack(SqStack &S)
{
free(S.base);
S.base=NULL;
S.stacksize=0;
return 0;
}
int StackEmpty(SqStack S)
{
p==S.base)
return 1;
else
return 0;
}
int Push(SqStack &S, int e)
{
p - S.base >= S.stacksize)
{//栈满,追加存储空间
S.base = (int *) realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof (int));
if (!S.base)
exit(-2); //存储分配失败

S.stacksize += STACKINCREMENT;
}
*S.top++ = e;
return 1;
}
int Pop(SqStack &S, int &e)
{
p == S.base)
return 0;
e = *S.top;
return 1;
}
}
void conversion()
{
int N,e;
SqStack s;
InitStack(s);
printf("请输⼊⼀个整数:");
scanf("%d",&N);
while(N)html代码转链接
{
Push(s,N%8);
N=N/8;
}
printf("转换后的8进制为:\n"); while(!StackEmpty(s))
{
Pop(s,e);
printf("%d",e);
}
printf("\n");
DestroyStack(s);
}
int main()
{
conversion();
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。