什么是栈?
栈这个数据结构,一咋听 名字觉得很深奥 感觉很难。那是因为以前从没有接触过。一直以为栈是跟关键字一样 事先已经定义好了的。以前太傻太天真了。后来经过摸索,所有的数据结构 其实都是抽象的。表示的就是一种数据存放的结构规则。比如前面说到的 去超市买东西 买了各种各样的,最后放到口袋里面装着,其实那口袋里面的商品集合 就是一个数据结构了。至于是什么结构 我想应该更像《数据结构》中描述 的 “堆”。 哈哈我还没学到堆。我只是口袋里的东西 无序的放着。根据中文的表述 不就是一堆吗? 呵呵。很多时候 不用学的太死了。需要突破下自己仅有的思维局限。
好了,正式描述下栈 这个结构。对于男孩子来说,这个数据结构 很可能自己现实生活中遇到过。最好的例子 就是那个 玩具手枪的弹夹。弹夹里面的子弹 如果自己按一颗进去 ,再按一颗的话,如果开枪,那么肯定是后按进去的子弹 先出来。 这样的结构 称为 栈。 很浅显吧。往往很多书上说的很深奥似地。我们可以看到这个结构最大的特点 就是 数据 先存入 ,后出来。 在现实生活中 我们也会有地方用到这样的 结构 来存放数据。 计算机编程世界中也会有更多的地方需要到。至于是哪里要用到。没有明确的规定,完全取决于你自己写程序的需求。其实数据结构这门课程 可有可无,如果没学到这里面的思想,你同样的也能用很很浅显很很耗费性能的结构来存储你的数据(不过这样 显然不太适合想做一名优秀程序员的同学)。
如何用栈来整理数据?
用数组实现 栈 的细节代码
public class StackX{
private int maxSize;//栈里面数组的大小 也就是栈的大小
private char[] stackArray;
private int top;//这个表示指针,指向最后进来的数据
public StackX(int s){
maxSize = s;
stackArray = new char[maxSize];
top = -1;
}
/**
* 把数据存入栈中,记得给 top 先加值 ,再做下标。
* @param j
*/
public void push(char j){
stackArray[++top] = j;
}
/**
* 弹出最后存入的数据
* @return
*/
public char pop(){
return stackArray[top--];
}
}