栈的实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了栈的实现相关的知识,希望对你有一定的参考价值。

栈的实现:

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

       栈,定义为先进后出。

技术分享

可以看到 插入以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;
    }
}

 

以上是关于栈的实现的主要内容,如果未能解决你的问题,请参考以下文章

栈的基本实现代码

数据结构复习代码——栈的顺序实现以及一些基本操作

栈的实现代码

栈的实现原理

数据结构基础学习——栈的概念及代码实现

链栈的基本实现