您的位置:首页 > 其它

zhanshuzhi

2015-09-17 11:35 218 查看
#include < stdio.h > 
#include < stdlib.h >
#include "myconst.h"
typedef unsigned int SElemType;
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10 
typedef struct {
    SElemType * base;
    SElemType * top;
    int stacksize;
}
SqStack;
Status InitStack(SqStack & S) {
    S.base = (SElemType * ) malloc(STACK_INIT_SIZE * sizeof(SElemType));
    if (!S.base) exit(OVERFLOW);
    S.top = S.base;
    S.stacksize = STACK_INIT_SIZE;
    return OK;
}
Status GetTop(SqStack S, SElemType & e) {
    if (S.top == S.base) return ERROR;
    e = *(S.top - 1);
    return OK;
}
Status Push(SqStack & S, SElemType e) {
    if (S.top - S.base >= S.stacksize) {
        S.base = (SElemType * ) realloc(S.base, (S.stacksize + STACKINCREMENT) * sizeof(SElemType));
        if (!S.base) exit(OVERFLOW);
        S.top = S.base + S.stacksize;
        S.stacksize += STACKINCREMENT;
    } * S.top++=e;
    return OK;
}
Status Pop(SqStack & S, SElemType & e) {
    if (S.top == S.base) return ERROR;
    e = *--S.top;
    return OK;
}
Status StackEmpty(SqStack S) {
    return ! (S.top - S.base);
}
void conversion() {
    SqStack S;
    int p = 2;
    SElemType N,
    e;
    InitStack(S);
    printf("\n10jinzhi N=");
    scanf("%u", &N);
    while (N) {
        Push(S, N % p);
        N = N / p;
    }
    printf("\n%djinzhi:", p);
    while (!StackEmpty(S)) {
        Pop(S, e);
        printf("%u", e);
    }
}
void main() {
    conversion();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: