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(); }
RAKsmart怎么样?RAKsmart机房即日起开始针对洛杉矶机房的独立服务器进行特别促销活动:低至$76.77/月,最低100Mbps带宽,最高10Gbps带宽,优化线路,不限制流量,具体包括有:常规服务器、站群服务器、10G大带宽服务器、整机机柜托管。活动截止6月30日结束。RAKsmart,美国华人老牌机房,专注于圣何塞服务器,有VPS、独立服务器等。支持PayPal、支付宝付款。点击直达...
RAKsmart怎么样?RAKsmart发布了2021年中促销,促销时间,7月1日~7月31日!,具体促销优惠整理如下:1)美国西海岸的圣何塞、洛杉矶独立物理服务器低至$30/月(续费不涨价)!2)中国香港大带宽物理机,新品热卖!!!,$269.23 美元/月,3)站群服务器、香港站群、日本站群、美国站群,低至177美元/月,4)美国圣何塞,洛杉矶10G口服务器,不限流量,惊爆价:$999.00,...
2022年春节假期陆续结束,根据惯例在春节之后各大云服务商会继续开始一年的促销活动。今年二月中旬会开启新春采购季的活动,我们已经看到腾讯云商家在春节期间已经有预告活动。当时已经看到有抢先优惠促销活动,目前我们企业和个人可以领取腾讯云代金券满减活动,以及企业用户可以领取域名优惠低至.COM域名1元。 直达链接 - 腾讯云新春采购活动抢先看活动时间:2022年1月20日至2022年2月15日我们可以在...