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(); }
官方网站:点击访问青云互联活动官网优惠码:终身88折扣优惠码:WN789-2021香港测试IP:154.196.254美国测试IP:243.164.1活动方案:用户购买任意全区域云服务器月付以上享受免费更换IP服务;限美国区域云服务器凡是购买均可以提交工单定制天机防火墙高防御保护端口以及保护模式;香港区域购买季度、半年付、年付周期均可免费申请额外1IP;使用优惠码购买后续费周期终身同活动价,价格不...
韩国云服务器哪个好?韩国云服务器好用吗?韩国是距离我国很近的一个国家,很多站长用户在考虑国外云服务器时,也会将韩国云服务器列入其中。绝大部分用户都是接触的免备案香港和美国居多,在加上服务器确实不错,所以形成了习惯性依赖。但也有不少用户开始寻找其它的海外免备案云服务器,比如韩国云服务器。下面云服务器网(yuntue.com)就推荐最好用的韩国cn2云服务器,韩国CN2云服务器租用推荐。为什么推荐租用...
reliablesite怎么样?reliablesite是一家于2006年成立的老牌美国主机商,主要提供独服,数据中心有迈阿密、纽约、洛杉矶等,均免费提供20Gbps DDoS防护,150TB月流量,1Gbps带宽。月付19美金可升级为10Gbps带宽。洛杉矶/纽约/迈阿密等机房,E3-1240V6/64GB内存/1TB SSD硬盘/DDOS/150TB流量/1Gbps带宽/DDOS,$95/月,...