最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java單鏈表的簡單操作實(shí)現(xiàn)教程

 更新時(shí)間:2020年11月05日 11:46:02   作者:zhen-yu  
這篇文章主要給大家介紹了關(guān)于Java單鏈表的簡單操作實(shí)現(xiàn)教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

用Java實(shí)現(xiàn)單鏈表的簡單操作,閱讀本文和上一篇文章體會Java中類與C++中結(jié)構(gòu)體指針的區(qū)別

提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、基本實(shí)現(xiàn)思路

  • 構(gòu)造結(jié)點(diǎn)類
  • 構(gòu)造鏈表類
  • 具體測試實(shí)現(xiàn)

二、代碼實(shí)現(xiàn)

1.定義結(jié)點(diǎn)類

package list.test01;
/*
 *定義結(jié)點(diǎn)類
*/
public class Node {
	private int data;
	public Node next;
	public Node(int data) {
		this.data = data;
	}
	
	public int getData() {
		return data;
	}

	public void setData(int data) {
		this.data = data;
	}

	public void display() {
		System.out.println("data="+data);
		
	}
	
}

2.定義鏈表類

package list.test01;
public class LinkList {
	//構(gòu)造頭結(jié)點(diǎn)
	private Node first;
	//記錄結(jié)點(diǎn)位置
	private int pos=0;
	
	public LinkList() {
		this.first=null;
	}
	/**
	 * 插入一個(gè)頭結(jié)點(diǎn)
	 */
	public void input(int data) {
		Node node=new Node(data);
		node.next=first;
		first=node;
	}
	/*
	 * 刪除頭結(jié)點(diǎn) 并返回頭結(jié)點(diǎn)
	 */
	public Node delete() {
		Node tmpeNode=first;
		first =tmpeNode.next;
		return first;
	}
	/*
	 * 在任意位置添加結(jié)點(diǎn)
	 */
public void addList(int i,int data) {
	Node node=new Node(data);
	Node useNode=first;
	Node preNode=first;
	while (i!=pos) {
		preNode=useNode;
		useNode=useNode.next;
		pos++;
	}
	
	node.next=useNode;
	preNode.next=node;
	pos=0;
}
/*
 * 在任意位置刪除結(jié)點(diǎn)
 */
public Node delete(int i) {
	Node preNode=first;
	Node useNode = first;
	if(first==null) {
		return first;
	}
	while(i!=pos) {
		preNode=useNode;
		useNode=useNode.next;
		pos++;
	}
	preNode.next=useNode.next;
	pos=0;
	return useNode;
}
/*
 * 頭插法建立鏈表
 */
public void Initlist(int a[]) {
	for (int i = 0; i < a.length; i++) {
		Node node=new Node(a[i]);
		node.next=first;
		first=node;
	}
}
/*
 * 尾插法建鏈表
 */
public void InitList2(int a[]) {
	Node qNode=first;
	for (int i = 0; i < a.length; i++) {
		Node node=new Node(a[i]);
		qNode.next=node;
		qNode=node;
	}

}
/*
 * 查詢結(jié)點(diǎn)信息為data的位置
 */
public int findList(int data) {
	Node useNode=first;
	if(first==null) {
		System.out.println("該鏈表為空!");
		return 0;
	}
	while(useNode.getData()!=data) {
		useNode=useNode.next;
		pos++;
	}
	int i=pos;
	pos=0;
	System.out.println("該元素在第"+i+"位置");
	return i;
}
/*
 * 顯示鏈表中的結(jié)點(diǎn)信息
 */
public void displayall() {
	Node useNode=first;
	while(useNode!=null) {
		useNode.display();
		useNode=useNode.next;
	}
	System.out.println();
	}
}
 
 

3.測試調(diào)用

package list.test01;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		LinkList laLinkList=new LinkList();
		//檢驗(yàn)插入頭結(jié)點(diǎn)
		laLinkList.input(10);
		laLinkList.input(20);
		laLinkList.input(30);
		System.out.println("顯示插入的三個(gè)頭結(jié)點(diǎn)元素");
		laLinkList.displayall();
		//檢驗(yàn)任意位置插入結(jié)點(diǎn)
		laLinkList.addList(1, 1);
		laLinkList.addList(2, 2);
		laLinkList.addList(3, 3);
		System.out.println("顯示任意位置插入元素的值");
		//顯示結(jié)點(diǎn)信息
		laLinkList.displayall();
		//刪除值為2的結(jié)點(diǎn)
		System.out.println("顯示刪除功能");
		Node deleNode=laLinkList.delete(2);
		System.out.println("===============");
		//顯示刪除結(jié)點(diǎn)的信息
		deleNode.display();
		System.out.println("=============");
		//顯示全部信息
		laLinkList.displayall();
		System.out.println("---------------------");
		System.out.println("下面是查詢");
		//查詢元素為3的位置
		laLinkList.findList(3);
		System.out.println("---------------------");
		int a[]= {1,2,3,4,5};
		LinkList laLinkList2=new LinkList();
		//頭插法建鏈表
		System.out.println("下面是頭插法建鏈表");
		laLinkList2.Initlist(a);
		laLinkList2.displayall();

		System.out.println("下面是尾插法");
		LinkList laLinkList3=new LinkList();
		//先插入一個(gè)頭結(jié)點(diǎn)
		laLinkList3.input(0);
		laLinkList3.InitList2(a);
		laLinkList3.displayall();
		//Node n1=new Node(20);
		//n1.display();

	}

}

4.結(jié)果


總結(jié)

以上用Java實(shí)現(xiàn)了單鏈表的簡單操作,在C、C++里面有結(jié)構(gòu)體、指針等 鏈表理解較為簡單,但是Java里用類去代替結(jié)構(gòu)體的功能,在Java中類是引用型,從而代替指針。以上是初學(xué)者對Java單鏈表的理解,還不是很明白。

相關(guān)文章

  • Mybatis一對多查詢的兩種姿勢(值得收藏)

    Mybatis一對多查詢的兩種姿勢(值得收藏)

    這篇文章主要給大家介紹了關(guān)于Mybatis一對多查詢的兩種姿勢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Java實(shí)現(xiàn)隨機(jī)出題,10道10以內(nèi)加減法計(jì)算代碼實(shí)例

    Java實(shí)現(xiàn)隨機(jī)出題,10道10以內(nèi)加減法計(jì)算代碼實(shí)例

    這篇文章主要介紹了Java實(shí)現(xiàn)隨機(jī)出題,10道10以內(nèi)加減法計(jì)算,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring中的ContextLoaderListener詳細(xì)解析

    Spring中的ContextLoaderListener詳細(xì)解析

    這篇文章主要介紹了Spring中的ContextLoaderListener詳細(xì)解析,在web容器即Tomact容器啟動web應(yīng)用即servlet應(yīng)用時(shí),會觸發(fā)ServletContextEvent時(shí)間,這個(gè)事件會被ServletContextListener監(jiān)聽,需要的朋友可以參考下
    2023-12-12
  • java 抽象類與接口的區(qū)別總結(jié)

    java 抽象類與接口的區(qū)別總結(jié)

    這篇文章主要介紹了java 抽象類與接口的區(qū)別總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java Pattern和Matcher字符匹配方式

    Java Pattern和Matcher字符匹配方式

    這篇文章主要介紹了Java Pattern和Matcher字符匹配方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Eclipse中常用快捷鍵匯總

    Eclipse中常用快捷鍵匯總

    這篇文章主要介紹了Eclipse中常用快捷鍵,文中介紹的非常詳細(xì),幫助大家更好的利用eclipse開發(fā),感興趣的朋友可以了解下
    2020-07-07
  • Java高版本Api在Android中的使用方法詳解

    Java高版本Api在Android中的使用方法詳解

    API(Application?Programming?Interface)應(yīng)用程序編程接口,java?API是一本程序員字典,是JDK提供給我們使用的類的說明文檔,下面這篇文章主要給大家介紹了關(guān)于Java高版本Api在Android中的使用方法,需要的朋友可以參考下
    2022-05-05
  • 關(guān)于在Java中使用預(yù)定義類

    關(guān)于在Java中使用預(yù)定義類

    這篇文章主要介紹了關(guān)于在Java中使用預(yù)定義類,預(yù)定義類就是Java類庫(或第三方庫)中已經(jīng)定義好的類,例如,Math 類和 Date 類,需要的朋友可以參考下
    2023-05-05
  • Assert.assertNotNull()斷言是否是空問題

    Assert.assertNotNull()斷言是否是空問題

    這篇文章主要介紹了Assert.assertNotNull()斷言是否是空問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • JavaWeb使用mvc模式實(shí)現(xiàn)登錄功能

    JavaWeb使用mvc模式實(shí)現(xiàn)登錄功能

    本文主要介紹了JavaWeb使用mvc模式實(shí)現(xiàn)登錄功能,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論

大洼县| 镇远县| 商河县| 广州市| 县级市| 甘谷县| 万山特区| 邮箱| 静乐县| 文化| 伽师县| 台中市| 宁晋县| 平泉县| 扶风县| 阳西县| 宜丰县| 永安市| 遂平县| 博客| 惠水县| 平度市| 林西县| 察隅县| 雷波县| 台安县| 白河县| 抚远县| 金堂县| 阳城县| 蒙山县| 旅游| 淮北市| 贞丰县| 泰宁县| 龙门县| 沧源| 东明县| 布尔津县| 桑植县| 马龙县|