首页 / 软件开发 / JAVA / Java实现基于栈实现整数加法算法
Java实现基于栈实现整数加法算法2011-04-13整数是有最大上限的,如果整数超出最大上限位数,如 4398912120931092319+49832232849329019019210921029,此时整型变量无法保存这些数字.解 决的办法是,可利用字符串保存这些数字,再利用栈做按位加法.1.用Java实现,首先使用链表LinkedList构造栈数据结构.import java.util.LinkedList;
public class IntStack {
private LinkedList<Integer> storage = new LinkedList<Integer> ();
/** 入栈 */
public void push(int v) {
storage.addFirst(v);
}
/** 出栈,但不删除 */
public int peek() {
return storage.getFirst();
}
/** 出栈 */
public int pop() {
return storage.removeFirst();
}
/** 栈是否为空 */
public boolean empty() {
return storage.isEmpty();
}
/** 打印栈元素 */
public String toString() {
return storage.toString();
}
}2.使用栈加法操作.2.1栈oper1和栈oper2分别保存两个加数,栈result保存结果;2.2方法pushNum(String soper1, String soper2)将两个数字字符串分别保存于两个栈中 ;2.3方法add()进行加法操作,具体算法是:[1]整型变量addition保存一个十位值,只能取值0或1,两个9相加为18;[2]循环从两个栈中取数据,将相加的结果的个位值保存于栈result,十位值保存于整型变 量addition;[3]整型变量addition初始值为0,每次要参与下一轮运算;[4]当某加数栈(栈oper1或栈oper2)为空后,直接将另一个栈的数据复制到栈result;