第6週目--データ構造--キューの応用のデジタル変換(スタック)
2019 ワード
/*
* Copyright (c) 2015,
* —— ( )
* All rights reserved.
* : sqstack.cpp
* :
* :2015 10 24
* :codeblocks
*
* : 。 , 。
* :
* : 。
*/
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{
ElemType data[MaxSize];
int top; //
} SqStack; //
void InitStack(SqStack *&s); //
bool StackEmpty(SqStack *s); //
bool Push(SqStack *&s,ElemType e); //
bool Pop(SqStack *&s,ElemType &e); //
void MultiBaseOutput (int number,int base);
void InitStack(SqStack *&s)
{
s=(SqStack *)malloc(sizeof(SqStack));
s->top=-1;
}
bool StackEmpty(SqStack *s)
{
return(s->top==-1);
}
bool Push(SqStack *&s,ElemType e)
{
if (s->top==MaxSize-1) // ,
return false;
s->top++;
s->data[s->top]=e;
return true;
}
bool Pop(SqStack *&s,ElemType &e)
{
if (s->top==-1) // ,
return false;
e=s->data[s->top];
s->top--;
return true;
}
void MultiBaseOutput (int number,int base)
{
// number , base
int i;
SqStack *S;
InitStack(S);
while(number) // base ,
{
Push(S,number%base); //
number/=base;
}
while(!StackEmpty(S)) //
{
Pop(S, i);
printf("%d",i);
}
}
int main()
{
MultiBaseOutput(300, 15);
return 0;
}
:
<img src="http://img.blog.csdn.net/20151025222637020?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />