我觉得用数组比栈还简单,还是说有什么东西我没考虑到?这种题用栈做相比于数组有什么优势吗
主要是看使用场景,比如说手机返回这个功能,当我们点击某个按钮跳转到下一页后,想返回上一页怎么办?用栈实现的话就是把每一页都按顺序放进栈里面,跳到下一页就push进栈,返回上一页就把当前页pop弹出栈即可。
用数组也可以,把每一页都存到一个数组里,然后用一个指针p指向当前页,跳到下一页就要把下一页加入数组,然后把指针移动到下一个位置;返回上一页就把指针往回移动一个位置,然后把当前页删除掉。
可以看出,用数组的话,多了一个操作,就是指针的移动。而用栈的话,我们只需要把东西放进去即可,内部指针的移动不需要我们管。
也就是说,用一些封装好的数据结构,可以帮我们屏蔽一些细节,我们只需要关心它有哪些特点,怎么使用它即可,它的内部逻辑不需要我们去纠结。