Java与数据结构(三) 栈

来源:互联网 发布:个人 域名 备案 编辑:程序博客网 时间:2024/06/03 17:50
  栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

  栈和队列一般采用顺序存储,Java代码实现如下:

package 数据结构和算法;public class Stack {private int size;private int top = -1;private int[] stack;Stack(){stack = new int[10];size = 10;}Stack(int i){stack = new int[i];size = i;}boolean IsEmpty(){if(top == -1)return true;elsereturn false;}//在栈顶插入一个元素void Push(int e){if(top == size-1){System.out.println("栈已满,无法继续添加!");return ;}stack[++top] = e;}//删除栈顶元素void Pop(){if(IsEmpty()){System.out.println("栈已空!");return ;}System.out.println(stack[top]+"已被弹出");top--;}//输出栈顶元素void GetTop(){if(!IsEmpty()){System.out.println(stack[top]);}else{System.out.println("栈已空!");}}//打印整个栈 从栈底开始void Print(){for(int i=top;i>=0;i--)System.out.print(stack[i]+" ");System.out.println();}public static void main(String[] args){Stack s = new Stack();for(int i=1;i<=10;i++)s.Push(i);s.Print();s.Pop();s.Print();}}
Output:

10 9 8 7 6 5 4 3 2 1 
10已被弹出
9 8 7 6 5 4 3 2 1 

原创粉丝点击