package genericlinklist;
/* * 泛型單鏈錶環的操作
* */
class testlink1
public entry(t val)
} private entryhead;
//將來指向頭結點處 標誌
public testlink1()
//頭插法
public void inserthead(t val)
//尾插法
public void inserttail(t val)
cur.next = entry;
} //得到長度 儲存資料節點的個數
public int getlength()
return len;
} //建立乙個帶環的鍊錶
public void createloop()
cur.next = head.next.next;
}//判斷單鏈表是否有環
public boolean isloop()
}return false;
}//判斷環的入口點
public t getentryloop()
while(fast != null && fast.next != null)
} slow = head;//這個引用回到起點
while(fast != slow)
return slow.data;
}//第一次相遇和第二次相遇之間的路程為環的長度
public int getlooplength()
entryfast = head;
entryslow = head;
while(fast != null && fast.next != null)
if(flag = true)
if(slow == fast && flag == true)
} return len;
}public void show()
} public void show2(entryentry)
} public entrygethead()
}public class genericlinklist3
k1.show();//9 8 7 6 5 4 3 2 1 0
k1.createloop();
if(k1.isloop()) else
int num = k1.getentryloop();
system.out.println(num);
system.out.println("len:"+k1.getlooplength());
}}
用泛型實現單鏈表
節點 public class entry public t getvalue public void setvalue t value public entry getnext public void setnext entry next 頭節點 public class headentry ex...
用java實現泛型程式設計的單鏈表
以下程式實現了單鏈表的基本操作 初始化 頭插 尾插 列印 刪除 單鏈表的節點結構設計 class slinked public t getdata public void setdata t data public slinkedgetnext public void setnext slinked...
單鏈表中的環
問題一 鍊錶中是否存環?問題二 鍊錶中環的入口結點是哪個?問題三 鍊錶中環的結點數目 環的長度 是多少?解答思路 問題一 如果有兩個頭結點指標,乙個走的快,乙個走的慢,那麼若干步以後,快的指標總會超過慢的指標一圈。問題二 假設問題一中兩個不同步速遍歷的指標為p和q,其中p的步速為2,q的步速為1,假...