栈的应用之数制转换

Posted 不忧尘世不忧心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈的应用之数制转换相关的知识,希望对你有一定的参考价值。

#include <stdio.h>


#define STACKSIZE 110
#define OK 1
#define TRUE 1
#define FALSE 0
int flag;

typedef int ElemType;
typedef int Status;
typedef struct
{
  ElemType data[STACKSIZE];
  int top;
}SeqStack;

void InitStack(SeqStack *s)
{
 (*s).top = 0;
}

Status StackFull(SeqStack s)
{
 if(s.top==STACKSIZE-1) return FALSE;
 return TRUE;
}

void Push(SeqStack *s, ElemType p)
{
    if(!StackFull(*s)) 
    {
        printf("OverFlow\n");
        flag=1;
    }
 (*s).data[(*s).top]=p;
 (*s).top++;
}

Status StackEmpty(SeqStack s)
{
  if(s.top==0) return FALSE;
  return TRUE;
}

Status Pop(SeqStack *s,ElemType *p)
{
 if(!StackEmpty(*s)) return FALSE;
 (*s).top--;
  *p=(*s).data[(*s).top];
  return TRUE;
}

void conversion()
{
    ElemType n, m;
    int p;
    SeqStack s;
    flag = 0;
  printf("请输入一个数字:\n");
       scanf("%d", &n);
   printf("请输入需要转换的数制:\n");
       scanf("%d", &m);

  InitStack(&s);

  while(n)
  {
   Push(&s, n%m);
   n = n/m;
  }
  
  if(!flag)
  {
   while(StackEmpty(s)==1)
  {
    Pop(&s, &p);
    printf("%d", p);
  }
  printf("\n");
  }
 
}

int main()
{
   conversion();

 return 0;
}

 

以上是关于栈的应用之数制转换的主要内容,如果未能解决你的问题,请参考以下文章

深入了解计算机网络之数制

软考笔记第一天之数制

栈的应用举例

栈的应用

栈及其应用

c语言 数制转换(递归)