Maison  >  Article  >  Java  >  Amélioration Java (Sanyi) ----- Pile

Amélioration Java (Sanyi) ----- Pile

黄舟
黄舟original
2017-02-11 10:17:221465parcourir

En Java, la classe Stack représente une pile d'objets dernier entré, premier sorti (LIFO). La pile est une structure de données très courante qui est implémentée à l'aide d'une opération typique premier entré, dernier sorti. Chaque pile contient un sommet de pile. Chaque fois que la pile est sautée, les données situées en haut de la pile sont supprimées, comme suit :


Stack étend Vector avec cinq opérations, permettant aux vecteurs d'être traités comme des piles. Les cinq opérations sont les suivantes :

            操作                                           说明

<strong>empty</strong>()

测试堆栈是否为空。

<strong>peek</strong>()

查看堆栈顶部的对象,但不从堆栈中移除它。

<strong>pop</strong>()

移除堆栈顶部的对象,并作为此函数的值返回该对象。

<strong>push</strong>(E item)

把项压入堆栈顶部。

<strong>search</strong>(Object o)

返回对象在堆栈中的位置,以 1 为基数。

                                                                                                                                                             > Description

<strong>vide</strong>()

Testez si la pile est vide.

public class Stack<E> extends Vector<E>
<strong>coup d'oeil</strong>()<p><span style="font-size:14px;"></span></p>

Afficher l'objet en haut de la pile, mais pas le supprimer de la pile.

<strong>pop</strong>()

Supprimez l'objet en haut du stack et renvoie cet objet comme valeur de cette fonction.
/**
     * 构造函数
     */
    public Stack() {
    }

    /**
     *  push函数:将元素存入栈顶
     */
    public E push(E item) {
        // 将元素存入栈顶。
        // addElement()的实现在Vector.java中
        addElement(item);

        return item;
    }

    /**
     * pop函数:返回栈顶元素,并将其从栈中删除
     */
    public synchronized E pop() {
        E    obj;
        int    len = size();

        obj = peek();
        // 删除栈顶元素,removeElementAt()的实现在Vector.java中
        removeElementAt(len - 1);

        return obj;
    }

    /**
     * peek函数:返回栈顶元素,不执行删除操作
     */
    public synchronized E peek() {
        int    len = size();

        if (len == 0)
            throw new EmptyStackException();
        // 返回栈顶元素,elementAt()具体实现在Vector.java中
        return elementAt(len - 1);
    }

    /**
     * 栈是否为空
     */
    public boolean empty() {
        return size() == 0;
    }

    /**
     *  查找“元素o”在栈中的位置:由栈底向栈顶方向数
     */
    public synchronized int search(Object o) {
        // 获取元素索引,elementAt()具体实现在Vector.java中
        int i = lastIndexOf(o);

        if (i >= 0) {
            return size() - i;
        }
        return -1;
    }

<strong>push</strong>(E article )

Pousser l'élément vers le haut de la pile.

<strong>recherche</strong> (Objet o )

Renvoyer l'objet sur la pile Position, socle 1.
Stack hérite de Vector, et il étend simplement Vector : L'implémentation de Stack est très simple, avec une seule méthode de construction et cinq méthodes d'implémentation (héritées de Vector Les méthodes de (ne sont pas inclus), et le code source pour son implémentation est très simple Ce qui précède est le contenu du chapitre sur l'amélioration de Java (Sanyi) -----Stack Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn