2017年7月29日 星期六

(Java)(資料結構) 雙向佇列

/*
 * 
 * 雙向佇列
 */
public class Double_ends_Queue {

public static void main(String[] args) {
LinkedList_Queue n =  new LinkedList_Queue();
for(int i = 1 ; i < 4 ; i++)
        System.out.println(n.enqueue("1"));
System.out.println(n.dequeue(2));
     System.out.println(n.dequeue(2));
     System.out.println(n.dequeue(2));
}

}
class LinkedList_Queue{
Node front , rear ;//指標
String name ;
boolean enqueue(String name){//添加值
Node node = new Node(name);
if(rear == null)  //假設尾端是空的
front = node ;//建立第一個節點
else
rear.nextNode = node ;
rear = node ;
return true;
}
String dequeue(int action){

if(front != null && action == 1){
if(front == rear) rear = null ; //指標相等 代表無值
  name = front.name ;
  front = front.nextNode  ;
  return name ;
}else if(rear!= null && action == 2){
Node StartNode , EndNode ;
StartNode = front ;
EndNode = front ;
name = rear .name ;
while(front.nextNode != rear&& front.nextNode != null  ){//沒成立意思只有1個
front = front.nextNode ;
EndNode = front ;
}
front = StartNode ;
  rear = EndNode;
if(rear.nextNode == null || front.nextNode == null ){
rear = null ; front = null;
}
return name ;

}
return "Not Name" ;
}




class Node{
String name ;
Node nextNode ;
Node(String n){
name = n ;
}
}
}

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。