最近看到斯坦福大学iOS开发视频里面说到一个知识,在oc中,当我门想建立一个栈的时候,不用去使用多个数组来自己构成栈,其实每个数组的结构本来就是栈,这个说法对吗?
栈 遵循的是先进后出,也就是先加入的对象是放置在下面的,后来的在上面;
而数组也是类似的,数组添加对象也是有顺序的,在iOS SDK 里面很多地方就是用数组来作为栈存放对象,例如 UINavigationController ,push方法压入栈,
pop方法出栈,就是用数组实现的
栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
数组可以代实现栈的功能,但是栈不能实现数组的功能。
用包含的关系来说:数组包含栈
打个比方:栈是数组的父类,数组是栈的子类.
栈是一种思想了,斯坦福课程只是说数组可能也是栈实现的,这个涉及到苹果的语言设计,我们只能看到封装好的外部