Java实现数据结构栈stack和队列Queue
Google后发现大多数文章都是通过LinkedList类实现,当然JDK有自带的Stack类
回顾JDK提供的集合类
容器(集合)框架如下:
集合类存放于java.util包中。
集合类存放的都是对象的引用,而非对象本身。
集合类型主要有3种:set(集)、list(列表)和map(映射)。
Collection接口
├List 接口
│├LinkedList 链表
│├ArrayList 顺序结构动态数组类
│└Vector 向量
│ └Stack 栈
Map接口
├Hashtable
├HashMap
└Set接口
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet(也是接口)<--TreeSet
LinkedList, 查阅JDK
List接口的链表列表实现。
实现所有可选的列表操作,并且允许所有元素(包null)
LinkedList类还为在列表的开头及结尾get,remove和insert元素提供了统一的命名方法。
这些操作允许将链接列表用作堆栈,队列或双端队列
注意此实现不是同步的
JDK本身提供的Stack类
提供了通常的push和pop操作,以及取堆栈顶点的peek方法,测试堆栈是否为空的empty方法,在堆栈中查找项并确定离栈顶的距离,共五个方法。
JDK中实现这个类本身继承自Vector这个类(since JDK1.0)
数据结构中 栈的定义及基本运算
栈和队列都属于线性结构,是两种在运算上受到某些限制的特殊线性表,他们比一般线性表更简单。
栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。
允许插入和删除的一端,称为栈顶),另一端为固定的一端,称为栈底
栈顶,栈底,空栈,栈的特性,
退栈,进栈
栈的运算:
初始化栈,进栈push,出栈pop,,取栈顶元素(即是查看下一个要出栈的元素,也叫peek),判断空
用LinkedList实现stack
其实主要是实现 进栈push,出栈pop,,取栈顶元素这几个方法
.simoncook.examtest;
import java.util.LinkedList;
public class MyStack {
private LinkedList ll = new LinkedList();
public void push(Object obj){
//将指定元素插入此列表的开头。
ll.addFirst(obj);
}
public Object pop(){
//移除并返回此列表的第一个元素.
return ll.removeFirst();
}
public Object peek(){
// 返回此列表的第一个元素。
return ll.getFirst();
}
public boolean empty(){
return ll.isEmpty();
}
}
数据结构队列
参考
/blog/more.asp?name=eaglebetter&id=17232
队列(Queue)的定义
队列的特性队列的实例队 列的基本运算 (1) 入队操作:InQueue(q,x) (2)出队操作:OutQueue(q,x) (3)读队头元 素:ReadFront(q,x) (4)显示队列中元素ShowQueue(q) (5)判队空操作:QEmpty(q) (6)判 队满操作:QFull(q) (7)求队列长度Qlen(q)
实现代码: .gc.list; import java.util.*; public class MyQueue {
private LinkedList ll=new LinkedList(); //入队操作 public void put(Object o){ ll.addLast(o); } //使用removeFirst()方法,返回队列中第一个数据,然后将它从队列 中删除 //出队操作 public Object get(){ return ll.removeFirst(); } public boolean empty(){ return ll.isEmpty(); }
41云怎么样?41云是国人主机品牌,目前经营产品有国内外云服务器、CDN(高防CDN)和物理机,其中国内外云服务器又细分小类有香港限流量VPS、香港大带宽VPS、香港弹性自选VPS、香港不限流VPS、香港BGP线路VPS、香港Cera+大带宽机器、美国超防VPS、韩国原生VPS、仁川原生VPS、日本CN2 VPS、枣庄高防VPS和金华高防VPS;物理机有美国Cera服务器、香港单程CN2服务器、香...
易探云香港vps主机价格多少钱?香港vps主机租用费用大体上是由配置决定的,我们选择香港vps主机租用最大的优势是免备案vps。但是,每家服务商的机房、配置、定价也不同。我们以最基础配置为标准,综合比对各大香港vps主机供应商的价格,即可选到高性能、价格适中的香港vps主机。通常1核CPU、1G内存、2Mbps独享带宽,价格在30元-120元/月。不过,易探云香港vps主机推出四个机房的优惠活动,...
易探云怎么样?易探云是目前国内少数优质的香港云服务器服务商家,目前推出多个香港机房的香港云服务器,有新界、九龙、沙田、葵湾等机房,还提供CN2、BGP及CN2三网直连香港云服务器。近年来,许多企业外贸出海会选择香港云服务器来部署自己的外贸网站,使得越来越多的用户会选择易探云作为网站服务提供平台。今天,云服务器网(yuntue.com)小编来谈谈易探云和易探云服务器怎么样?具体香港云服务器多少钱1个...