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>vide</strong>()
|
Testez si la pile est vide. |
|||||||||||
public class Stack<E> extends Vector<E> Copier après la connexion coup d'oeil()< /code> | Afficher l'objet en haut de la pile, mais pas le supprimer de la pile. | |||||||||||
| 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; } Copier après la connexion | |||||||||||
push(E article ) |
Pousser l'élément vers le haut de la pile. | |||||||||||
|
Renvoyer l'objet sur la pile Position, socle 1. |