知识大全 栈和队列 - 栈和队列的应用实例 - 栈的应用实例(一)
Posted 知
篇首语:仰天大笑出门去,我辈岂是蓬蒿人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 栈和队列 - 栈和队列的应用实例 - 栈的应用实例(一)相关的知识,希望对你有一定的参考价值。
栈和队列的应用非常之广 只要问题满足后进先出和先进先出原则 均可使用栈和队列作为其数据结构
栈的应用
数制转换
将一个非负的十进制整数N转换为另一个等价的基为B的B进制数的问题 很容易通过 除B取余法 来解决
【例】将十进制数 转化为二进制数
解答 按除 取余法 得到的余数依次是 则十进制数转化为二进制数为
分析 由于最先得到的余数是转化结果的最低位 最后得到的余数是转化结果的最高位 因此很容易用栈来解决
转换算法如下
typedef int DataType;//应将顺序栈的DataType定义改为整型
void MultiBaseOutput (int N int B)
//假设N是非负的十进制整数 输出等值的B进制数
int i;
SeqStack S;
InitStack(&S);
while(N) //从右向左产生B进制的各位数字 并将其进栈
push(&S N%B); //将bi进栈 <=i<=j
N=N/B;
while(!StackEmpty(&S)) //栈非空时退栈输出
i=Pop(&S);
printf( %d i);
cha138/Article/program/sjjg/201311/23920
相关参考