亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
java隊(duì)列
[打印本頁(yè)]
作者:
undefined
時(shí)間:
2015-05-26 14:22
標(biāo)題:
java隊(duì)列
隊(duì)列是一種特殊的線性表,它只允許在表的前端(front)進(jìn)行刪除操作,而在表的后端(rear)進(jìn)行插入操作。進(jìn)行插入操作的端稱為隊(duì)尾,進(jìn)行刪除操作的端稱為隊(duì)頭。隊(duì)列中沒(méi)有元素時(shí),稱為空隊(duì)列。 在隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將是最先被刪除的元素;反之最后插入的元素將最后被刪除的元素,因此隊(duì)列又稱為“先進(jìn)先出”(FIFO—first in first out)的線性表。 隊(duì)列空的條件:front=rear 隊(duì)列滿的條件: rear = MAXSIZE.
//通過(guò)LinkedList實(shí)現(xiàn)隊(duì)列
package 隊(duì)列和堆棧;
import java.util.*;
public class LinkedListQueueTest {
//字段
private LinkedList list;
//無(wú)參數(shù)構(gòu)造
public LinkedListQueueTest()
{
list=new LinkedList();
}
//隊(duì)列元素的個(gè)數(shù)
public int size()
{
return list.size();
}
//進(jìn)入隊(duì)列
public void enqueue(Object obj)
{
list.addLast(obj);
}
//對(duì)頭出來(lái)
public Object dequeue()
{
return list.removeFirst();
}
//瀏覽對(duì)頭元素
public Object front()
{
//return list.getFirst();
return list.peekFirst();
}
//判斷隊(duì)列是否為空
public boolean isEmpty()
{
return list.isEmpty();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkedListQueueTest llq=new LinkedListQueueTest();
System.out.println(llq.isEmpty());
llq.enqueue("147");
llq.enqueue("258");
llq.enqueue("369");
System.out.println(llq.size());
System.out.println("移除隊(duì)列頭元素:"+llq.dequeue());
System.out.println(llq.size());
llq.enqueue("abc");
llq.enqueue("def");
System.out.println(llq.size());
System.out.println("查看隊(duì)列的頭元素:"+llq.front());
System.out.println(llq.size());
System.out.println(llq.isEmpty());
}
}
通過(guò)數(shù)組實(shí)現(xiàn)
package 隊(duì)列和堆棧;
import java.util.NoSuchElementException;
//通過(guò)數(shù)組來(lái)實(shí)現(xiàn)隊(duì)列
public class ArrayQueue {
//字段
public static Object[] data;
//隊(duì)列的元素個(gè)數(shù)
protected int size ;
//隊(duì)列頭
protected int head;
//隊(duì)列尾
public static int tail;
/**
*
*/
//無(wú)參數(shù)構(gòu)造函數(shù)
public ArrayQueue() {
final int INITIAL_LENGTH=3;
data=new Object[INITIAL_LENGTH];
size=0;
head=0;
tail=-1;
}
//隊(duì)列元素個(gè)數(shù)方法
public int size()
{
return size;
}
public boolean isEmpty()
{
return size==0;
}
//得到隊(duì)列頭元素
public Object front()
{
if(size==0)
throw new NoSuchElementException();
return data[head];
}
//進(jìn)入隊(duì)列enqueue()方法
public void enqueue(Object obj)
{
//此時(shí)隊(duì)列已經(jīng)滿
if(size==data.length){
Object[] oldData=data;
data=new Object[data.length*2];
//if(head==0)
System.arraycopy(oldData, head, data, 0, oldData.length-head);
if(head>0)
System.arraycopy(oldData, 0, data, head+1, tail+1);
head=0;
tail=oldData.length-1;
}
tail=(tail+1)%data.length;
size++;
data[tail]=obj;
}
//隊(duì)列的元素出隊(duì)
public Object dequeue()
{
if(size==0)
throw new NoSuchElementException();
Object ele=data[head];
//循環(huán)隊(duì)列
head=(head+1)%data.length;
size--;
return ele;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return super.toString();
}
}
通過(guò)向量實(shí)現(xiàn):
//通過(guò)向量實(shí)現(xiàn)棧
package 隊(duì)列和堆棧;
import java.util.*;
public class VectorStackTest {
//字段
Vector v;
//構(gòu)造函數(shù)
public VectorStackTest()
{
v=new Vector();
}
//元素的個(gè)數(shù)
public int size()
{
return v.size();
}
//是否為空
public boolean isEmpty()
{
return size()==0;
}
//進(jìn)棧
public Object Push(Object obj)
{
v.addElement(obj);
return obj;
}
//出棧方法
public Object Pop()
{
int len=size();
Object obj=Peek();
v.removeElementAt(len-1);
return obj;
}
//查看棧頂元素
public Object Peek()
{
int len = size();
if (len == 0)
throw new EmptyStackException();
return v.elementAt(len - 1);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
VectorStackTest vst=new VectorStackTest();
System.out.println("大小:"+vst.size());
vst.Push("123");
vst.Push("456");
vst.Push("789");
vst.Push("abc");
System.out.println("大。"+vst.size());
System.out.println("棧頂:"+vst.Peek());
System.out.println("出棧:"+vst.Pop());
vst.Push("def");
vst.Push("147");
System.out.println("大小:"+vst.size());
System.out.println("棧頂:"+vst.Peek());
System.out.println("出棧:"+vst.Pop());
System.out.println(vst.Peek());
vst.Push("def");
vst.Push("147");
System.out.println(vst.Pop());
System.out.println(vst.Pop());
System.out.println(vst.Peek());
System.out.println(vst.Pop());
System.out.println(vst.Pop());
vst.Push("1aadf");
vst.Push("2dafad");
vst.Push("123789");
System.out.println(vst.Pop());
System.out.println(vst.Peek());
System.out.println(vst.Pop());
System.out.println(vst.Peek());
System.out.println("------------------end------------");
VectorStackTest llst=new VectorStackTest();
llst.Push("123");
llst.Push("456");
System.out.println("棧頂:"+llst.Peek());
System.out.println("出棧:"+llst.Pop());
System.out.println(llst.Peek());
llst.Push("789");
llst.Push("abc");
System.out.println("棧頂:"+llst.Peek());
System.out.println("出棧:"+llst.Pop());
System.out.println(llst.size());
System.out.println("棧頂:"+llst.Peek());
}
}
復(fù)制代碼
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2