国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java 單向鏈表的基本操作

2019-11-06 08:55:29
字體:
來源:轉載
供稿:網友

    今天學習了java中鏈表的知識,自己也動手實現了單向鏈表的相關操作,包括初始化、求表長、讀鏈表節點、定位、插入、刪除等等。

有錯誤歡迎大家指出并多多交流!在 數據結構之鏈表增刪查  這個包中定義一個Node類和一個Link類
package 數據結構之鏈表增刪查;public class Node {	String name;// 數據域	Node next;// 鏈域	public Node() {		this.name = "";		next = null;	}	public Node(String name) {		this.name = name;		next = null;	}}
package 數據結構之鏈表增刪查;public class Link {	Node head;// 頭結點	public Link() {		head = new Node();// 初始化頭結點	}	/*	 * 添加節點,在鏈表的最后添加	 */	public void add(Node data) {		Node temp = head;		while (temp.next != null) {			temp = temp.next;		}		temp.next = data;	}	/*	 * 插入節點 在某個節點之后插入一個新的節點	 */	public void insert(Node data, String newname) {		Node temp = head;		while (temp.next != null) {			if (temp.next.name.equals(data.name)) {				Node newNode = new Node(newname);				newNode.next = temp.next.next;				temp.next.next = newNode;				break;			} else {				temp = temp.next;			}		}	} /*	 * 刪除節點	 */	public void delete(Node data) {		Node temp = head;		while (temp.next != null) {			if (temp.next.name.equals(data.name)) {				temp.next = temp.next.next;				break;			} else {				temp = temp.next;			}		}	}	/*	 * 計算鏈表長度	 */	public int size() {		int len = 0;		Node temp = head;		while (temp.next != null) {			len++;			temp = temp.next;		}		return len;	}	/*	 * 查找數據 返回該數據的位置,返回3說明此數據在鏈表的第3個節點處,-1為鏈表中無此數據	 */	public int serach(String name) {		Node temp = head.next;		int index = 0;		while (temp != null) {			if (temp.name.equals(name)) {				index++;				return index;			}			index++;			temp = temp.next;		}		return -1;	}	/*	 * 遍歷鏈表	 */	public void display() {		Node temp = head;		while (temp.next != null) {			System.out.PRint(temp.next.name + "->");			temp = temp.next;		}		System.out.println();	}	public static void main(String[] args) {		// 創建鏈表		Link link = new Link();		// 創建節點		Node node1 = new Node("宋江");		Node node2 = new Node("盧俊義");		Node node3 = new Node("吳用");		Node node4 = new Node("林沖");		Node node5 = new Node("李逵");		Node node6 = new Node("燕青");		// 鏈表中添加數據節點		link.add(node1);		link.add(node2);		link.add(node3);		link.add(node4);		link.add(node5);		link.add(node6);		link.display();// 遍歷		System.out.println(link.size());// 6,輸出鏈表長度		System.out.println(link.serach("李逵"));// 5		System.out.println(link.serach("燕"));// 不存在,返回-1		link.insert(node4, "花榮");// 在node4"林沖"之后添加"花榮"		link.display();// 插入數據后遍歷		link.delete(node3);// 刪除節點node3"吳用"		link.display();// 刪除之后再遍歷鏈表		System.out.println(link.size());	}}運行結果:宋江->盧俊義->吳用->林沖->李逵->燕青->65-1宋江->盧俊義->吳用->林沖->花榮->李逵->燕青->宋江->盧俊義->林沖->花榮->李逵->燕青->6


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 诸城市| 寻乌县| 饶阳县| 武功县| 鸡西市| 叙永县| 永福县| 安达市| 察哈| 会泽县| 万州区| 德清县| 临泽县| 于都县| 邢台市| 昌都县| 策勒县| 丽江市| 商都县| 鄱阳县| 雅安市| 长春市| 深州市| 广汉市| 西林县| 新乡县| 阿拉善盟| 疏勒县| 南昌市| 上蔡县| 寿光市| 广汉市| 昌邑市| 宿州市| 襄垣县| 永宁县| 井陉县| 德庆县| 广元市| 哈巴河县| 上蔡县|