Stack源码解析及用LinkedList实现Stack
来源:互联网 发布:水仙花数java三位数 编辑:程序博客网 时间:2024/06/06 03:18
(1)JDK源码解析
类Stack代表的是一种后进先出的堆对象。继承Vector类的5个方法以允许vector被作为一个栈。提供了最普通的添加和删除操作,同时也提供了取出栈顶元素的方法,判断栈是否为空的方法,和搜索某个元素和发现它离栈顶有多远。栈刚创建,是空的。更多完整和一致后进先出的集合栈操作方法由Deque接口和它的实现提供,
从后面向前面找是否存在某个元素,存在,返回在整个栈中的位置,(距离第一个元素的距离),不存在,就返回-1.
(2)继承LinkedList实现Stack
import java.util.LinkedList;
public class StackExe<E> extends LinkedList<E> {
private LinkedList<E> stack = new LinkedList<E>();//创建一个LinkedList
//添加元素(在尾部追加栈顶元素)
public void push(E e){stack.addLast(e);
}
//删除元素(如果栈是空,就返回null,如果栈不是空,就删除栈顶元素)
public E pop(){if(isEmpty()){
return null;
}
return stack.removeLast();
}
//查询栈顶的元素
public E peek(){if(isEmpty()){
return null;
}
return stack.getLast();
}
//判断是否为空
public boolean isEmpty(){
return stack.isEmpty();
}
public static void main(String args[]){
StackExe exe = new StackExe();
System.out.println(exe.peek());//null
exe.push("aaa");//添加元素
exe.push("bbb");
exe.push("ccc");
exe.push("ddd");
exe.push("eee");
while(!exe.isEmpty()){//如果栈不为空,循环打印
System.out.print(exe.pop()+" ");//eee,ddd,ccc,bbb,aaa
}
}
}
阅读全文
0 0
- Stack源码解析及用LinkedList实现Stack
- 用LinkedList实现Stack
- 用java.util.*中的LinkedList实现stack
- Java用LinkedList实现的Stack
- 用LinkedList实现自己的Stack
- Linkedlist和Array实现Stack
- 不用LinkedList实现Stack行为
- [STL]源码解析:stack
- [C++]stack源码解析
- java Stack源码解析
- Vector、Stack源码解析
- Stack类源码解析
- c# Stack源码解析
- 用LinkedList模拟Stack功能
- 【源码】Vector、Stack源码解析
- 基于“用java.util.*中的LinkedList实现stack” 2.0版
- java中使用LinkedList实现stack机制
- 使用LinkedList类实现Stack类型
- 剑指offer27---将二叉搜索树转换成一个排序的双向链表
- Strategy
- together项目进度报告5
- C++仿函数
- 赛码网3月31号模拟试题(C++)
- Stack源码解析及用LinkedList实现Stack
- 在用JAVA写一个简易CAD程序时的笔记
- Spring框架之IOC(控制反转)
- 用两个栈实现队列
- cookie与session
- 数据结构---先序遍历
- hdu 2571 命运【java】【简单dp】
- warning: LF will be replaced by CRLF in tyrone-springboot-quickstart-withoutparent/pom.xml. The file
- 代码暂存