zoukankan      html  css  js  c++  java
  • 数据结构实验五——栈实现数制转换

    #include <stdio.h>
    #include <stdlib.h>
    #define N 10
    #define M 5
    typedef struct SeqStack
    {
        int stacksize;
        int *base;
        int *top;
    }SeqStack;
    void Initstack(SeqStack *S)
    {
        S->base=(int *)malloc(N*sizeof(int));
        if(!S->base)
            exit(1);
        S->top=S->base;
        S->stacksize=N;
    }
    void Pushstack(SeqStack *S,int e)
    {
        if(S->top-S->base>=S->stacksize)
        {
            S->base=(int *)realloc(S->base,(S->stacksize+M)*sizeof(int));
            S->stacksize+=M;
        }
        *S->top++=e;
    }
    int Popstack(SeqStack *S)
    {
        return *--S->top;
    }
    int Emptystack(SeqStack S)
    {
        if(S.base>=S.top)
            return 1;
        else
            return 0;
    }
    void Destroystack(SeqStack *S)
    {
        free(S->base);
    }
    
    int main()
    {
        int n,m;
        SeqStack S;
        int e;
        while(1)
        {
            printf("请输入要转换的数值(输入非正数退出):
    ");
            scanf("%d",&n);
            if(n<=0)
                break;
            printf("请输入要转换的数制:
    ");
            scanf("%d",&m);
            Initstack(&S);
            while(n)
            {
                Pushstack(&S,n%m);
                n=n/m;
            }
            while(!Emptystack(S))
            {
                e=Popstack(&S);
                printf("%d",e);
            }
            printf("
    ");
            Destroystack(&S);
        }
        return 0;
    }
    

  • 相关阅读:
    Array 对象-sort()
    vue安装
    前端面试题
    JavaScript对象原型
    CSS如何水平垂直居中?
    块格式化上下文(Block Formatting Context,BFC)
    盒子模型
    前端基础
    Markdown语法
    浏览器 滚动条 占据 y轴宽度的解决方案
  • 原文地址:https://www.cnblogs.com/abc-24990/p/4257523.html
Copyright © 2011-2022 走看看