栈的实现java

来源:互联网 发布:网页美工图片 编辑:程序博客网 时间:2024/05/29 15:52

栈的实现:

       栈,仅限制在栈的一端进行插入和删除,用于插入与删除的一端为顶部。另一端为底端。

       栈,定义为先进后出。

可以看到 插入以a1,a2,a3顺序进行,而删除以an ,an-1顺序进行

同样栈的实现也分为数组实现以及链式实现两种。

首先来介绍一下顺序实现

优点:顺序实现的出栈和入栈的执行速度会更加的快。

缺点:顺序实现的元素数量是有限的。

代码实现:

public class Stack {private Node stack[];int top = 0;Stack(){stack = new Node [10];}Stack(int n){stack = new Node [n];}boolean push(Node node){if(top == stack.length)return false;else{stack[top] = node;top ++;return true;}}boolean remove(){if(top == 0)return false;else{top --;return true;}}Node peek(){return stack[top - 1];}}
接下来是链式的实现方法

优点:是没有数量限制的。

缺点:在进行出栈和入栈是会进行的比较慢。

public class LinkStack {Node top;int count;LinkStack(){count = 0;top = new Node();}void push(Node node){//增添栈顶元素top.next = node;node.pre = top;top = node;count ++;}boolean remove(){//移除栈顶元素if(count == 0)return false;else{top = top.pre;count --;return true;}}Node peek(){//返回栈顶元素但不删除他return top;}}class Node{int value;Node next;Node pre;Node(){value = 0;}Node(int v){value = v;}}



0 0