Javaシミュレーションの一方向チェーンテーブルと双方向チェーンテーブルの実現


以下に示すJavaシミュレーションの一方向チェーンテーブルの実装
package com.jadyer.sort;

/**
 *       
 * @author   
 * @editor Jan 23, 2012 7:55:21 PM
 * @see ==================================================================================================
 * @see 【       :              】
 * @see 1)      ,  :   、 、  、 、  、  
 * @see 2)       , : 、 
 * @see ==================================================================================================
 * @see 【      :          】
 * @see 1)                             
 * @see 2)            "   "     ,        "    "     
 * @see 3)           ,               。        ,               
 * @see 4)         n          (a1,a2,a3,...,an),  n       (n>=0),n=0      
 * @see ==================================================================================================
 * @see 【      :               】
 * @see 1)   :                  。                   
 * @see 		     ,                      ,          
 * @see 		                  ,  ArrayList          
 * @see 2)  :                 。                
 * @see ==================================================================================================
 * @see 【stack】
 * @see  (stack)          ,                    
 * @see                ,          
 * @see         (LIFO)   ,        (top),        (bottom)
 * @see ==================================================================================================
 * @see 【Queue】
 * @see   (Queue)                 ,                   
 * @see                 ,           
 * @see          (FIFO)   ,             (Rear),           (Front)(       )
 * @see ==================================================================================================
 */
class NodeOneWay {
	String data; //        
	NodeOneWay next;   //            
	
	public NodeOneWay(){}
	
	public NodeOneWay(String data){
		this.data = data;
	}
}


/**
 *        
 * @author   
 * @editor Jan 23, 2012 7:56:51 PM
 */
public class NodeOneWayTest {
	public static void main(String[] args) {
		NodeOneWay node11 = new NodeOneWay("node11_data");
		NodeOneWay node22 = new NodeOneWay("node22_data");
		NodeOneWay node33 = new NodeOneWay("node33_data");
		node11.next = node22; //      
		node22.next = node33;
		System.out.println(node11.next.next.data); //  node11  node33 data   
		/**
		 *   node44  ,      node11 node22  
		 */
		NodeOneWay node44 = new NodeOneWay("node44_data");
		node11.next = node44; //  node11       node44
		node44.next = node22; //  node44       node22
		System.out.println(node11.next.next.next.data); //  node11  node33 data   
		System.out.println(node11.next.next.data);      //  node11  node22 data   
		/**
		 *   node44  
		 */
		node11.next = node22; // node11       node22,node44         node22
		node44.next = null;
		System.out.println(node11.next.next.data); //  node11  node33 data   
	}
}

次に、Javaシミュレーション双方向チェーンテーブルの実装を示します.
package com.jadyer.sort;

/**
 *         
 * @author   
 * @editor Jan 23, 2012 8:16:34 PM
 * @see java.util.ArrayList    ,       
 * @see java.util.LinkedList    ,            
 * @see                  ,      ,               
 * @see  add/remove   ,LinkedList     , get   ,ArrayList     
 */
class NodeTwoWay {
	NodeTwoWay previous; //            
	String data;	 //        
	NodeTwoWay next;	 //            
	
	public NodeTwoWay(){}
	
	public NodeTwoWay(String data){
		this.data = data;
	}
}


/**
 *          
 * @author   
 * @editor Jan 23, 2012 8:21:33 PM
 */
public class NodeTwoWayTest {
	public static void main(String[] args) {
		NodeTwoWay node11 = new NodeTwoWay("node11_data");
		NodeTwoWay node22 = new NodeTwoWay("node22_data");
		NodeTwoWay node33 = new NodeTwoWay("node33_data");
		node11.previous = node33; //         
		node11.next = node22;
		node22.previous = node11;
		node22.next = node33;
		node33.previous = node22;
		node33.next = node11;
		/**
		 *   node44  ,      node11 node22  
		 */
		NodeTwoWay node44 = new NodeTwoWay("node44_data");
		node44.previous = node11;
		node44.next = node22;
		node11.next = node44;
		node22.previous = node44;
		/**
		 *   node44  
		 */
		node44.previous = null;
		node44.next = null;
		node11.next = node22;
		node22.previous = node11;
	}
}