-1
我正在尋找實施使用java中的數組和鏈表的隊列。唯一的是,我只想在使用數組實現它時使用大小和起始索引,並且只使用大小和最後一個節點,而使用鏈接列表。隊列使用數組(僅使用數組,大小和開始索引)和喜歡列表(只使用大小和最後一個節點)
我正在尋找實施使用java中的數組和鏈表的隊列。唯一的是,我只想在使用數組實現它時使用大小和起始索引,並且只使用大小和最後一個節點,而使用鏈接列表。隊列使用數組(僅使用數組,大小和開始索引)和喜歡列表(只使用大小和最後一個節點)
爲了簡單起見,我只是要使用的對象的類型被存儲在隊列中
陣列基於
public class ArrayQueue {
private int size;
private Object[] objects;
public ArrayQueue(){
size = 0;
objects = new Object[size];
}
//Add object to end of queue
public void push(Object obj){
size++;
Object[] newArr = new Object[size];
for(int i = 0; i < objects.length; i++){
newArr[i] = objects[i];
}
newArr[newArr.length-1] = obj;
objects = newArr;
}
//Release first object in queue
public Object pop(){
Object result = objects[0];
size--;
Object[] newArr = new Object[size];
for(int i = 1; i < objects.length; i++){
newArr[i] = objects[i];
}
objects = newArr;
return result;
}
}
聯的
public class LinkedQueue {
private int size;
private Node end;
public LinkedQueue(){
size = 0;
end = null;
}
public void push(Object obj){
size++;
end = new Node(obj,end);
}
public Object pop(){
Node lastNode = null; // This just makes it easier to remove the last node;
Node currNode = end;
while(currNode.prev != null){
lastNode = currNode;
currNode = currNode.prev;
}
if(size > 1){lastNode.prev = null;}
else{ end = null;}
size--;
return currNode.obj;
}
}
節點類
public class Node {
public Node prev;
public Object obj;
public Node(Object obj,Node prev){
this.obj = obj;
this.prev = prev;
}
}
如果您對我爲什麼做了什麼,我做了什麼?