- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用顺序栈实现进制转换
# includestdio.h
# define Stack_Size 50
typedef char StackElemType;
typedef struct
{
StackElemType elem[Stack_Size];
int top;
}SeqStack;
//初始化,设置一个空栈(清空栈)
void InitStack(SeqStack *s)
{
s-top=-1;
}
//插入(入栈)
int Push(SeqStack *s,StackElemType x)
{
if(s-top==Stack_Size-1)
{
printf(栈满,无法插入);
return 0;
}
s-top++;
//插入
s-elem[s-top]=x;
//插入成功,返回1
return 1;
}
//删除栈顶元素(出栈)
int Pop(SeqStack *s,StackElemType *x)
{
//栈空的时候,删除成功
if(s-top==-1)
{
printf(栈空,无法删除!);
return 0;
}
//带回将要被删除的元素
*x=s-elem[s-top];
//删除
s-top--;
return 1;
}
//取栈顶元素
int GetStackTop(SeqStack s,StackElemType *x)
{
//当栈为空时,取元素失败
if(s.top==-1) return 0;
//取元素
*x=s.elem[s.top];
return 1;
}
//输出栈的元素:
void OutPutStack(SeqStack s)
{
int i;
//从栈顶元素到栈底元素依次输出
i=s.top;
while(i=0)
{
printf(%c,s.elem[i]);
i--;
printf(\n);
}
}
//栈空判断
int EmptyStack(SeqStack s)
{
if(s.top==-1)
return 1;
else 0;
}
void Transform1(int m)
{
SeqStack s;
InitStack(s);
int r;
StackElemType x;
while(m!=0)
{
r=m%2;
Push(s,r);
m=m/2;
}
while(s.top!=-1)
{
Pop(s,x);
printf(%d,x);
}
printf(\n);
}
}
void main()
{
int m;
printf(请输入一个十进制整数:);
scanf(%d,m);
printf(%d的二进制数是:,m);
Transform1(m);
}
文档评论(0)