码迷,mamicode.com
首页 > 其他好文 > 详细

栈的应用之数制转换

时间:2016-10-20 11:53:46      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

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

 

栈的应用之数制转换

标签:

原文地址:http://www.cnblogs.com/daydayupacm/p/5980095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!