求助!急!急!急! 请帮忙写个数据结构程序:堆栈的操作应用,数制转换,十进制→二进制 (越简单,越好

如题所述

已经运行过了,么有任何问题!!

#include<stdio.h>

typedef struct
{
int *base;
int stacksize;
int *top;
}sqstack;

void initstack(sqstack *S)
{

(*S).base=(int *)malloc(sizeof(int)*10);
if(!(*S).base) exit(0);
(*S).stacksize=10;
(*S).top=(*S).base;

}

int pop(sqstack *S)
{int e;
if((*S).base==(*S).top) exit(0);
e=*(--(*S).top);

return e;

}

void push(sqstack *S,int e)
{
if((*S).top-(*S).base>=(*S).stacksize)
{
(*S).base=(int*)realloc((*S).base,sizeof(int)*((*S).stacksize+1));
if(!(*S).base) exit(0);
(*S).top=(*S).base+(*S).stacksize;
(*S).stacksize++;

}
*(*S).top=e;
(*S).top++;

}
int StackEmpty(sqstack *S)
{
if((*S).top==(*S).base)
return 0;

}

main()
{
int i,e;
sqstack S;
initstack(&S);
scanf("%d",&i);
while(i)
{
push(&S,i%2);//调用入栈函数,具体的函数自己写
i=i/2;

}
while(StackEmpty(&S))//判断堆栈是否为空
{
e=pop(&S);//出栈
printf("%d",e);

}

}

c编程高手正在招新,有意者速速行动,一起学习,一起努力!!
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜