java建立雙向迴圈連結串列
阿新 • • 發佈:2018-11-17
/** * */ /** * @author jueying: * @version 建立時間:2018-10-23 下午01:26:47 * 類說明 */ /** * @author jueying * */ public class Test6 { int top=-1;//棧頂指標 int size=0;//棧大小 static Node headNode; int i=0; class Node{ private Node SuffixNext;//後指標 private Node prefixNext;//前指標 private Integer data;//資料域 } //雙向迴圈列表 public void Doublerecicle(Node node,int data){ if(i<=10){ Node newNode=new Node();//建立新的結點 newNode.data=new Integer(i);//設定資料域 newNode.SuffixNext=null; node.SuffixNext=newNode; newNode.prefixNext=node; Doublerecicle(newNode,++i); }else{ node.SuffixNext=headNode; headNode.prefixNext=node; } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Test6 test=new Test6(); headNode=test.new Node();//頭指標 headNode.data=null; new Test6().Doublerecicle(headNode,0);//迴圈連結串列 int k=0; //前迴圈輸出連結串列 從頭到尾輸出,在從尾到頭輸出即可 /* while(headNode.SuffixNext!=null&&k<=23){ headNode=headNode.SuffixNext; ++k; if(headNode.data!=null) System.out.print(headNode.data+" "); }*/ //後迴圈輸出連結串列 從尾到頭輸出,在從頭到尾輸出即可 while(headNode.prefixNext!=null&&k<=23){ headNode=headNode.prefixNext; ++k; if(headNode.data!=null) System.out.print(headNode.data+" "); } } }