堆栈的应用

堆栈所具有的后进先出特性,使得堆栈成为程序设计中非常有用的工具。

例一:进制转换

进制转换是一种常见的数值转换,额,学过计算机都应该知道或者了解,如果没学过我写了一个例子可以看一下,如果写的不是很仔细请大家体谅一下。

将十进制数转换成八进制数

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

}

这就是堆栈的应用,如果有什么做的不够的地方请给我留言,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值