日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java宋江,Java编程内功-数据结构与算法「单链表」,

發(fā)布時間:2025/3/11 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java宋江,Java编程内功-数据结构与算法「单链表」, 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

package?com.structures.linkedlist;

public?class?SingleLinkedListDemo?{

public?static?void?main(String[]?args)?{

HeroNode?heroNode1?=?new?HeroNode(1,?"宋江",?"及時雨");

HeroNode?heroNode2?=?new?HeroNode(2,?"盧俊義",?"玉麒麟");

HeroNode?heroNode3?=?new?HeroNode(3,?"吳用",?"智多星");

HeroNode?heroNode4?=?new?HeroNode(4,?"林沖",?"豹子頭");

SingleLinkedList?singleLinkedList?=?new?SingleLinkedList();

singleLinkedList.addByNo(heroNode3);

singleLinkedList.addByNo(heroNode2);

singleLinkedList.addByNo(heroNode4);

singleLinkedList.addByNo(heroNode1);

singleLinkedList.list();

}

}

//定義SingleLinkedList管理我們的英雄

class?SingleLinkedList?{

//先初始化一個頭節(jié)點(diǎn),頭節(jié)點(diǎn)不能動,將來遍歷用

private?HeroNode?head?=?new?HeroNode(0,?"",?"");

//添加節(jié)點(diǎn)到單向鏈表

//思路:當(dāng)不考慮編號的順序時

//1.?找到當(dāng)前鏈表的最后節(jié)點(diǎn)

//2.?將最后這個節(jié)點(diǎn)的next域指向新的節(jié)點(diǎn)

public?void?add(HeroNode?node)?{

//因?yàn)閔ead節(jié)點(diǎn)不能動,因此我們需要一個輔助遍歷temp

HeroNode?temp?=?head;

//遍歷鏈表,找到最后

while?(temp.next?!=?null)?{

//找到鏈表的最后

//如果沒有找到temp就后移

temp?=?temp.next;

}

temp.next?=?node;

}

//第二種添加英雄的方式,在添加英雄時,根據(jù)排名將英雄插入到指定位置

//如果有這個排名,則添加失敗,并給出提示

public?void?addByNo(HeroNode?heroNode)?{

//因?yàn)閔ead節(jié)點(diǎn)不能動,因此我們需要一個輔助遍歷temp

//因?yàn)閱捂湵?因此找的temp是位于添加位置的前一個節(jié)點(diǎn),否則加入不了

HeroNode?temp?=?head;

boolean?flag?=?false;//標(biāo)識添加的編號是否存在,默認(rèn)false

while?(true)?{

if?(temp.next?==?null)?{

break;

}

if?(temp.next.no?>?heroNode.no)?{//位置找到,就在temp的后面插入

break;

}?else?if?(temp.next.no?==?heroNode.no)?{

//編號已存在

flag?=?true;

break;

}

temp?=?temp.next;

}

if?(flag)?{

System.out.printf("準(zhǔn)備插入的英雄的編號?%d?已存在,不能加入\n",?heroNode.no);

}?else?{

//插入鏈表temp的后面

heroNode.next?=?temp.next;

temp.next?=?heroNode;

}

}

//顯示鏈表[遍歷]

public?void?list()?{

//判斷鏈表是否為空

if?(head.next?==?null)?{

System.out.println("鏈表為空");

}

//因?yàn)轭^節(jié)點(diǎn)不能動,因此我們需要一個輔助變量來遍歷

HeroNode?temp?=?head.next;

while?(temp?!=?null)?{

//判斷是否到最后

//輸出節(jié)點(diǎn)的信息

System.out.println(temp);

//將temp后移

temp?=?temp.next;

}

}

}

//定義一個HeroNode,每個HeroNode對象就是一個節(jié)點(diǎn)

class?HeroNode?{

public?int?no;

public?String?name;

public?String?nickName;

public?HeroNode?next;//指向下一個節(jié)點(diǎn)

//構(gòu)造器

public?HeroNode(int?no,?String?name,?String?nickName)?{

this.no?=?no;

this.name?=?name;

this.nickName?=?nickName;

}

public?HeroNode?getNext()?{

return?next;

}

public?void?setNext(HeroNode?next)?{

this.next?=?next;

}

@Override

public?String?toString()?{

return?"HeroNode{"?+

"no="?+?no?+

",?name='"?+?name?+?'\''?+

",?nickName='"?+?nickName?+?'\''?+

'}';

}

}

/*

HeroNode{no=1,?name='宋江',?nickName='及時雨'}

HeroNode{no=2,?name='盧俊義',?nickName='玉麒麟'}

HeroNode{no=3,?name='吳用',?nickName='智多星'}

HeroNode{no=4,?name='林沖',?nickName='豹子頭'}

*/

總結(jié)

以上是生活随笔為你收集整理的java宋江,Java编程内功-数据结构与算法「单链表」,的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。