zoukankan      html  css  js  c++  java
  • 用栈进行进制转换

    根据数据结构的算法。 可以将10进制转换为2-16进制

    View Code
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>

    char JJ[]={"0123456789ABCDEF"};

    typedef struct node
    {
    struct node *next;
    char data;
    }stack;

    int isEmpty(stack *s);
    void CreatStack(stack **s);
    void Push(stack **s,char x);
    char Pop(stack **s);
    void Convey(stack **s, int src, int dest);

    int main()
    {
    int src,dest;
    stack *s;
    CreatStack(&s);
    printf("请输入一个数字和要转换的进制: ");
    scanf("%d %d",&src,&dest);
    Convey(&s,src,dest);
    return 0;
    }

    int isEmpty(stack *s)
    {
    return s->next == NULL;
    }

    void CreatStack(stack **s)
    {
    *s = (stack *)malloc(sizeof(stack));
    if(*s == NULL)
    {
    printf("mermory error\n");
    exit (0);
    }
    (*s)->next = NULL;
    }

    void Push(stack **s,char c)
    {
    stack *temp;
    temp = (stack *)malloc(sizeof(stack));
    if(temp == NULL)
    {
    printf("mermory error\n");
    exit (0);
    }
    temp->data = c;
    temp->next = (*s)->next;
    (*s)->next = temp;
    }

    char Pop(stack **s)
    {
    stack *temp;
    char x;
    temp = (*s)->next;
    x = temp->data;
    (*s)->next = (*s)->next->next;
    free(temp);
    return x;
    }

    void Convey(stack **s, int src, int dest)
    {
    int temp, flag = 0;
    char t;
    if(src == 0)
    {
    Push(s,'0');
    }
    else
    {
    if(src < 0)
    {
    flag = 1;
    src = - src;
    }
    while(src != 0)
    {
    temp = src % dest;
    t = JJ[temp];
    Push(s,t);
    src /= dest;
    }
    }

    if(flag == 1)
    {
    printf("-");
    }
    while( !isEmpty(*s))
    {
    t = Pop(s);
    printf("%c",t);
    }
    printf("\n");
    }
      
  • 相关阅读:
    hdu 1998 奇数阶魔方(找规律+模拟)
    巧用百度Site App新组件为企业官网打造移动站
    POJ 1276 Cash Machine
    Unity3D中使用MiniJson解析json的例子
    设计模式读书笔记-----单例模式
    android 常用资料
    Objective-C之run loop详解
    icon 图标下载
    揭开Html 标签的面纱,忘不了的html .
    12157
  • 原文地址:https://www.cnblogs.com/genslow/p/2409838.html
Copyright © 2011-2022 走看看