zoukankan      html  css  js  c++  java
  • 栈、进制转化

    第六周

    要求:十进制转化为二进制和十六进制。用链栈存储数据

    函数:

    Status InitStack(LinkStack &S) //初始化

    Status Push(LinkStack &S, SElemType e) //计算结果入栈

    Status Pop(LinkStack &S, SElemType &e)//计算结果

    int StackEmpty(LinkStack S) //判断栈S是否为空

    Status DtoB(int N) //转化为二进制

    Status DtoH(int N) //转化为十六进制

    先定义结构类型为链栈

    初始化栈

    Status InitStack(LinkStack &S)
    {
        S = NULL;
        return OK;
    }

    入栈函数

    Status Push(LinkStack &S, SElemType e)
    {
        LinkStack p;
        p = new StackNode;
        if (!p) {
            return OVERFLOW;
        }
        p->data = e;
        p->next = S;
        S = p;
        return OK;
    }

    出栈函数

    Status Pop(LinkStack &S, SElemType &e)
    {
        LinkStack p;
        if (!S)
            return ERROR;
        e = S->data;
        p = S;
        S = S->next;
        delete p;
        return OK;
    }

    判断栈是否为空

    int StackEmpty(LinkStack S)
    {
        if (!S)
            return 1;
        else
            return 0;
    }

    转化为二进制函数

    Status DtoB(int N)
    {
        LinkStack S;
        SElemType e;
        InitStack(S);
        while (N) {
            Push(S, N % 2);
            N = N / 2;
        }
        while (!StackEmpty(S))
        {
            Pop(S, e);
            cout << e;
        }
        return OK;
    }

    转化为十六进制

    Status DtoH(int N)
    {
        LinkStack S;
        SElemType e;
        char H[] = "0123456789ABCDEF";
        InitStack(S);
        while (N) {
            Push(S, N % 16);
            N = N / 16;
        }
        while (!StackEmpty(S)) 
        {
            Pop(S, e);
            cout << H[e]; 
        }
        return OK;
    }

    测试函数

    int main()
    {
        int N;
        cout << "请输入一个非负的十进制整数:";
        cin >> N;
        cout << "对应的二进制数为:";
        DtoB(N);
        cout << "
    ";
        cout << "对应的十六进制数为:";
        DtoH(N);
    }

    运行结果

  • 相关阅读:
    搭建LAMP及wordpress
    httpd2.4常用配置
    编译安装httpd 2.4
    https加密实现
    httpd常用配置
    源码编译安装bind
    安装mariadb二进制程序
    搭建互联网DNS构架
    搭建DNS服务
    主从及转发DNS搭建
  • 原文地址:https://www.cnblogs.com/cjwen/p/10654067.html
Copyright © 2011-2022 走看看