1、栈
首先,普通的线性表实现是有两个端口可以访问的,但是如果作为栈就要封闭一端,只能访问另一端。这当然不是自讨苦吃,栈是一种抽象数据结构,是对现实世界对象的模拟。比如,自助餐厅中的一叠盘子,新盘子放在这一叠盘子的最上面,取得时候也是从最上面取。将其抽象出来就是栈,这是最合适的抽象方式。
基于栈的操作非常简单:
- 将数据压入栈顶-push
- 将栈顶数据弹出-pop
- 查看栈顶数据-top
栈的实现不是难点,基于栈的操作也很简单,重点是栈的运用。
动态图:
伪代码如下:
largeNumAdd()
{
读第一个数的数字,并将这些数字压入到一个栈中;
读第二个数的数字,并将这些数字压入到另一个栈中;
carry = 0; //代表进位
while(至少有一个栈不为空)