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);
    }

    运行结果

  • 相关阅读:
    ExcelHelper
    c# 文件的读写
    Wav文件操作类
    c# & (与) 、^ (异或)和 >>(<<位移运算)
    c# 高精度的timer
    c# 生成txt文件,写入内容
    C# 对 list<T>中的数据按某字段的大小进行排序
    OC 底层探索 06、 isa 2个经典问题分析
    OC 底层探索 05、属性、成员、实例变量简析
    数据结构与算法 0、 汇总简介
  • 原文地址:https://www.cnblogs.com/cjwen/p/10654067.html
Copyright © 2011-2022 走看看