堆栈所具有的后进先出特性,使得堆栈成为程序设计中非常有用的工具。
例一:进制转换
进制转换是一种常见的数值转换,额,学过计算机都应该知道或者了解,如果没学过我写了一个例子可以看一下,如果写的不是很仔细请大家体谅一下。
将十进制数转换成八进制数
10进制数转换成8进制的方法:除8取余,倒叙排列
例如:(2007)10 = (3727)8,其运算过程如下:
越晚生成的数位越早需要输出,结果数位的使用具有后出现先使用的特点,因此生成的结果数位可以使用一个堆栈来存储,然后从栈顶开始依次输出即可得到相应的转换结果
下面我们用代码来实现进制的转换
//导包
import liner_list_stack_singlylinked.Stack;
import liner_list_stack_singlylinked.StackSLinked;
/*
* 进制的转换
*/
public class BaseConversion {
public void baseConversion(int i) {
// 创建栈对象
Stack s = new StackSLinked();
// 输入的10进制数和8求余
while (i > 0) {
//余数进栈
s.push(i % 8);
//继续整除
i = i / 8;
}
// 输出元素
while (!s.isEmploy())
System.out.print(s.pop());
}
}
/**
* 测试方法
*/
public class BaseConversionTest {
public static void main(String[] args) {
//实例化对象
BaseConversion bc = new BaseConversion();
//测试
bc.baseConversion(2007);
}
}