#include<stdio.h>
#include<stdlib.h>
#define length 100
#define add 10
typedef struct size
{
int *top;
int *basic;
int stacksize;
}Stacks;
void InitStacks(Stacks &S)
{
S.basic=(int *)malloc(length * sizeof(int));
if(!S.basic)
{
printf("Creat erro!");
exit(0);
}
S.top=S.basic;
S.stacksize=length;
printf("Creat succeed!\n");
}
void PushStacks(Stacks &S,int n)
{
if(S.top-S.basic>=length)
{
S.basic = (int *)realloc(S.basic,(S.stacksize+add)*sizeof(int));
if(!S.basic)
{ printf("add failed!\n");exit(0);}
S.stacksize=S.stacksize+add;
S.top=S.basic+S.stacksize;
}
*S.top=n;
S.top++;
}
int EmptyStacks(Stacks S)
{
if(S.top==S.basic)
{
printf("the Stacks is Empty!\n");
return 0;
}
return 1;
}
void PopStacks(Stacks S)
{
if(!EmptyStacks(S))
exit(0);
while(S.top!=S.basic)
{
S.top--;
printf("%d ",*S.top);
}
putchar('\n');
}
void Change(int o,int d)
{
Stacks S;
int i;
InitStacks(S);
while(o)
{
i=o%d;
PushStacks(S,i);
o=o/d;
}
PopStacks(S);
}
int main()
{
Stacks S;
int o,d;
printf("please input the data:\n");
scanf("%d %d",&o,&d);
Change(o,d);
return 0;
}
栈—实现数制转换
最新推荐文章于 2024-06-20 16:06:53 发布