Java中用LinkedList实现栈和队列
2012-11-02 14:12
756 查看
栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。
LinkedList数据结构是一种双向的链式结构,每一个对象除了数据本身外,还有两个引用,分别指向前一个元素和后一个元素,和数组的顺序存储结构(如:ArrayList)相比,插入和删除比较方便,但速度会慢一些。
栈的定义
栈(Stack)
是限制仅在表的一端进行插入和删除运算的线性表。
(1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。
(2)当表中没有元素时称为空栈。
(3)栈为后进先出(LastInFirstOut)的线性表,简称为LIFO表。
栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中"最新"的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。
实现代码:
packagecom.weisou.dataStruct;
importjava.util.LinkedList;
@SuppressWarnings("unchecked")
publicclassMyStack{
LinkedListlinkList=newLinkedList<Object>();
publicvoidpush(Objectobject){
linkList.addFirst(object);
}
publicbooleanisEmpty(){
returnlinkList.isEmpty();
}
publicvoidclear(){
linkList.clear();
}
//移除并返回此列表的第一个元素
publicObjectpop(){
if(!linkList.isEmpty())
returnlinkList.removeFirst();
return"栈内无元素";
}
publicintgetSize(){
returnlinkList.size();
}
publicstaticvoidmain(String[]args){
MyStackmyStack=newMyStack();
myStack.push(2);
myStack.push(3);
myStack.push(4);
System.out.println(myStack.pop());
System.out.println(myStack.pop());
}
}
队列定义
队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表
(1)允许删除的一端称为队头(Front)。
(2)允许插入的一端称为队尾(Rear)。
(3)当队列中没有元素时称为空队列。
(4)队列亦称作先进先出(FirstInFirstOut)的线性表,简称为FIFO表。
实现代码:
packagecom.weisou.dataStruct;
importjava.util.LinkedList;
/**
*
*@authorgf
*@date2009-11-13
*/
publicclassMyQueue{
LinkedListlinkedList=newLinkedList();
//队尾插
publicvoidput(Objecto){
linkedList.addLast(o);
//队头取取完并删除
publicObjectget(){
if(!linkedList.isEmpty())
returnlinkedList.removeFirst();
else
return"";
}
publicbooleanisEmpty(){
returnlinkedList.isEmpty();
}
publicintsize(){
returnlinkedList.size();
}
publicvoidclear(){
linkedList.clear();
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
MyQueuemyQueue=newMyQueue();
myQueue.put(1);
myQueue.put(2);
myQueue.put(3);
System.out.println(myQueue.get());
}
}
相关文章推荐
- [疯狂Java]集合:Deque(双端队列)以及两个实现(ArrayDeque、LinkedList)、Stack(摒弃)、各线性表性能分析
- Java用LinkedList实现队列
- Java:基于LinkedList实现栈和队列
- Java:基于LinkedList实现栈和队列
- JAVA学习笔记(十)基于LinkedList实现栈和队列
- java中LinkedList 集合类实现栈和队列
- Java基础课程学习总结,使用LinkedList简单模拟队列数据结构和堆栈数据结构的实现
- Java(LinkedList) 队列的小实现
- 举例说明如何用java中的LinkedList实现队列
- java中LinkedList 集合类实现栈和队列
- java的队列与堆栈以linkedList实现
- Java中使用LinkedList实现栈与队列
- 队列在Java类库中的链式表示及实现——LinkedList
- java-集合(4)-用LinkedList来实现栈/队列-ArrayList和LinkedList比较
- java LinkedList类实现 队列
- 【java编程】Collection类之LinkedList实现队列,堆栈
- java LinkedList类实现 队列
- Java集合系列(三)—— 使用LinkedList实现堆栈,队列
- Java:基于LinkedList实现栈和队列
- Java:基于LinkedList实现栈和队列