數制轉換--順序棧的實現

#include
#include<malloc.h>
#define MAXSIZE  100
#define TURE 1
#define False 0
typedef int SElemType;
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
int n,i,e,N,m;//還要注意全局變量
SqStack s;
void InitStack(){
s.base=(SElemType*)malloc(MAXSIZE*sizeof(SElemType));
if(!s.base) printf("OVERFLOW\n");
s.top=s.base;
s.stacksize=MAXSIZE;
printf("初始化順序棧成功\n");
}
void Push_P(int m){           
if(s.top-s.base==s.stacksize)
printf("ERROR\n");
*s.top=m;s.top++;
}
void Pop(SqStack s){
printf("\n出棧依次爲:\n");
for(--s.top;s.top!=s.base;s.top=--s.top){
e=*s.top;
printf("%3d",e);
}
printf("%3d",*s.top);
}
void conversion(){
InitStack();
printf("\n輸入任意一個非負十進制數\n:");
scanf("%d",&N);
while(N){
m=N%8;
Push_P(m);
N=N/8;
}
        Pop(s);//這裏注意了
printf("\n");

}
void main(){
conversion();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章