您的位置:首页 > 其它

数制转换--顺序栈的实现

2015-04-04 11:22 169 查看
#include<stdio.h>

#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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: