java宋江,Java編程內功-數據結構與算法「單鏈表」,

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?{

//先初始化一個頭節點,頭節點不能動,將來遍歷用

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

//添加節點到單向鏈表

//思路:當不考慮編號的順序時

//1.?找到當前鏈表的最后節點

//2.?將最后這個節點的next域指向新的節點

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

//因為head節點不能動,因此我們需要一個輔助遍歷temp

HeroNode?temp?=?head;

//遍歷鏈表,找到最后

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

//找到鏈表的最后

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

temp?=?temp.next;

}

temp.next?=?node;

}

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

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

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

//因為head節點不能動,因此我們需要一個輔助遍歷temp

//因為單鏈表,因此找的temp是位于添加位置的前一個節點,否則加入不了

HeroNode?temp?=?head;

boolean?flag?=?false;//標識添加的編號是否存在,默認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("準備插入的英雄的編號?%d?已存在,不能加入\n",?heroNode.no);

}?else?{

//插入鏈表temp的后面

heroNode.next?=?temp.next;

temp.next?=?heroNode;

}

}

//顯示鏈表[遍歷]

public?void?list()?{

//判斷鏈表是否為空

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

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

}

//因為頭節點不能動,因此我們需要一個輔助變量來遍歷

HeroNode?temp?=?head.next;

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

//判斷是否到最后

//輸出節點的信息

System.out.println(temp);

//將temp后移

temp?=?temp.next;

}

}

}

//定義一個HeroNode,每個HeroNode對象就是一個節點

class?HeroNode?{

public?int?no;

public?String?name;

public?String?nickName;

public?HeroNode?next;//指向下一個節點

//構造器

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='豹子頭'}

*/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540935.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540935.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540935.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

智能家居逐漸融入AI技術 向大眾市場擴張仍需時間

雖然智能家居變得越來越普遍,并且大眾認知度越來越高,但是在這一技術變得像智能手機一樣無處不在之前,OEM和服務提供商仍然有很長的路要走。 在2016年11月在硅谷舉行的智能家居峰會上,代表們聽到了來自整個價值鏈上的聲音&#xf…

python 示例_Python使用示例設置add()方法

python 示例設置add()方法 (Set add() Method) add() method is used to add an element to the set, the method accepts an element and adds the elements to this set. add()方法用于將元素添加到集合中,該方法接受元素并將元素添加到該集合中。 Note: If the …

php怎么引用表單元素,表單元素:最全的各種html表單元素獲取和使用方法總結...

表單是網頁與用戶的交互工具,由一個元素作為容器構成,封裝其他任何數量的表單控件,還有其他任何元素里可用的標簽,表單能夠包含、、、、、等表單控件元素。表單元素有哪些呢?它包含了如下的這些元素,輸入文…

數據中心部署氣流遏制系統需要考慮的十大要素

數據中心氣流遏制策略能夠大幅提高傳統數據中心制冷系統的可預測性和效率。事實上,綠色網格組織(The Green Grid)將氣流管理策略稱作“實施數據中心節能計劃的起點”。但是,大多數已有數據中心由于受各種條件的制約,只…

JAVA語言異常,Java語言中的異常

1、異常分類從產生源頭來看,Java語言中的異常可以分為兩類:JVM拋出的異常。比如:訪問null引用會引發NullPointerException;0作為除數,如9/0,JVM會拋出ArithmeticException;內存消耗完&#xff0…

使用Mybatis Generator結合Ant腳本快速自動生成Model、Mapper等文件的方法

新建generatorConfig.xml和build_mybatis.xml&#xff1a; jar下載 <dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency> <depe…

java bitset_Java BitSet or()方法與示例

java bitsetBitSet類或()方法 (BitSet Class or() method) or() method is available in java.util package. or()方法在java.util包中可用。 or() method is used to perform logical OR between this BitSet and the given BitSet(bs). This BitSet is updated when either t…

matlab 細化函數,MATLAB圖像處理工具箱函數(細化篇).doc

MATLAB圖像處理工具箱函數(細化篇)第3章 MATLAB數字圖像處理工具箱3.1 MATLAB圖像預處理3.1.1 圖像處理的基本操作1. 讀入并顯示一幅圖像clear %清除所有的工作平臺變量close all %關閉已打開的圖形窗口Iimread (pout.tif); %讀取圖像pout.tif(該圖像是圖像處理工具箱自帶的圖像…

STM32啟動解析

啟動方式對的不同下載模式 STM32可以通過BOOT引腳的配置&#xff0c;來選擇不同的啟動模式------對應不同的下載方式。 仿真器下載—— 內部FLASH的啟動方式 串口下載 —— 系統存儲器的啟動方式 內部SRAM一般不用&#xff0c;不講 啟動過程 以內部FLASH的啟動方式為例&am…

OpenBSD基金會收到錘子科技約140萬捐贈款

11月26日消息&#xff0c;給開源項目捐款一向是錘子科技發布會的傳統&#xff0c;去年發布會的門票收入捐給了國人章亦春主導的開源項目OpenResty。今年&#xff0c;錘子科技選擇將收益捐贈給OpenBSD基金會。OpenBSD基金會收到錘子科技約140萬捐贈款 OpenBSD基金會11月23日發布…

自動化部署kvm虛擬機_自動化虛擬助手

自動化部署kvm虛擬機The automated virtual assistant or commonly called personal assistants, are developed to serve its users by performing some tasks, setting reminders and much more based on the input is given and local awareness. It is integrated with a l…

php 數據庫編碼,php怎么設置數據庫編碼方式

在php中&#xff0c;可以使用mysql_query()函數來設置mysql數據庫的編碼方式&#xff1b;具體方法&#xff1a;在mysql_connect()語句之后添加“mysql_query("set names 編碼方式");”代碼即可。本教程操作環境&#xff1a;windows7系統、PHP7.1版&#xff0c;DELL G…

mysql截取字符串與reverse函數

mysql的函數大全&#xff1a; http://www.jb51.net/Special/606.htm 這個網頁上很多知識點&#xff0c;可以學習下&#xff0c;關于mysql的函數&#xff0c;也可以作為API查詢&#xff1a; 這里只說下mysql的截取函數和reverse函數&#xff1a; MySQL 字符串截取函數&#xff1…

flask sql外鍵使用_如何在SQL中使用外鍵?

flask sql外鍵使用Basically, Foreign Key represents relationship between tables. 基本上&#xff0c; 外鍵代表表之間的關系 。 Syntax: 句法&#xff1a; column-name data_type (size) CONSTRAINT constraint-name References Table-name (Column-name)Example: 例&a…

php發展歷,PHP的發展歷程

PHP的發展歷程了解一門語言&#xff0c;我們必須知道這門語言的發展史&#xff0c;現在我通過版本的變化以時間軸的形式來說明PHP的發展歷程。1.1995年初PHP1.0誕生Rasmus Lerdof發明了PHP&#xff0c;這是簡單的一套Perl腳本&#xff0c;用來跟蹤訪問者的信息。這個時候的PHP只…

中國互聯網安全大會將召開 網絡安全再獲關注

從2016中國互聯網安全大會籌委會獲悉&#xff0c;將于8月16日在國家會議中心召開的第四屆中國互聯網安全大會籌備工作已全部就緒。 據經濟參考報7月15日消息&#xff0c;中國網絡空間安全協會副理事長、360公司總裁兼企業安全集團董事長齊向東表示&#xff0c;此次中國互聯網安…

合并排序算法排序過程_外部合并排序算法

合并排序算法排序過程外部分類 (External sorting) External sorting is a technique in which the data is stored on the secondary memory, in which part by part data is loaded into the main memory and then sorting can be done over there. Then this sorted data wi…

php榛子云短信驗證,java + maven +榛子云短信 實現發送短信驗證碼功能

如何使用java maven的項目環境發送短信驗證碼&#xff0c;本文使用的是榛子云短信的接口。下載下來是jar文件&#xff0c;需要將jar發布到本地的maven倉庫中&#xff0c; 在cmd環境下輸入:mvn install:install-file -DgroupIdcom.zhenzi -DartifactIdsms -Dversion1.0.0 -Dpac…

django css_在應用程序上實現CSS Django的

django cssCSS (Cascade Style Sheets) are used to implement design. CSS(級聯樣式表)用于實現設計。 Step 1: Create a Sandbox, Activate it, Install Django and Create Sample Project 步驟1&#xff1a;創建一個沙箱&#xff0c;將其激活&#xff0c;安裝Django并創建示…

PHPWeb開發入門體驗學習筆記

PHPWeb開發入門體驗學習筆記4一、PHP web應用開發須知1.入門要點程序員三個階段&#xff1a;碼農&#xff08;速成技能&#xff09;->工程師&#xff08;長期知識&#xff09;->專家&#xff08;研究論文&#xff09;編程三要素&#xff1a;聲明變量&#xff08;系統、全…