1,節點說明:
package pku.ss.datastructure.linkedlist;
public class listnode
listnode(object theelement, listnode n)
object element; //節點中的元素
listnode next; //指向下乙個節點
}
2,列舉器類
package pku.ss.datastructure.linkedlist;
/*** 是乙個列舉器(iterator)類,它提供了用於讀取元素的方法 linkedlistitr儲存
* 對listnode物件的乙個引用,它代表列舉器 的位置
* * @author jacken
*/public class linkedlistitr
/*** 判斷當前節點是否是最後乙個節點
* @return true or false
*/public boolean ispastend()
/*** 返回當前節點的元素值
* @return 當前節點的元素值
*/public object retrieve()
/*** 將當前節點往後推後乙個節點
*/public void advance()
listnode current;
}
3,鍊錶類
package pku.ss.datastructure.linkedlist;
public class linkedlist
/*** 判斷鍊錶是否為空
* @return true or false
*/public boolean isempty()
/*** 將鍊錶置空
*/public void makeempty()
/*** 返回頭節點的列舉器
* @return 頭節點列舉器
*/public linkedlistitr zeroth()
/*** 返回第乙個節點的列舉器
* @return 第乙個節點的列舉器
*/public linkedlistitr first()
/*** 查詢指定元素
* @param x
* @return 所查詢元素的列舉器
*/public linkedlistitr find(object x)
/*** 刪除指定元素
* @param x
*/public void remove(object x)
/*** 查詢指定元素的頭乙個節點
* @param x
* @return 指定元素的頭乙個節點的列舉器
*/public linkedlistitr findprevious(object x)
/*** 在p幾點後面插入乙個節點,節點的元素值為x
* @param x
* @param p
*/public void insert(object x, linkedlistitr p)
/*** 列印指定鍊錶
* @param thelist
*/public static void printlist(linkedlist thelist) else
}private listnode header;
}
Java資料結構之鍊錶反轉
思路很簡單,定義乙個類,這個類分成2塊,一塊是表示自身的標誌,另外乙個儲存指向下乙個元素的引用。通過互換相鄰兩個節點的引用來達到鍊錶反轉的效果。上 package com.withiter.test public class reverselist public static node add st...
JAVA 資料結構之雙向鍊錶
啊,寫完了雙端之後,雙向就好寫多了,重點是改變結點的next指向的時候,一定要一起把previous改了,並且要注意可能在last結點處進行指向修改時存在的的null情況。package linklist 結點定義 class doublynode public void display 寫乙個雙向...
Java資料結構 鍊錶
博主q q 656358805,歡迎線上交流!public class mylinklist public void addnode type data 預設在鍊錶最後新增乙個結點 addindex.next temp temp.pre addindex this.size system.out.p...