パッケージcom.rao.linkList;
/ **
* @author Srao
* @className LINKLIST
* @date 2019年12月3日午前10時39
* @package com.rao.linkList
* @description
* /
パブリック クラスLINKLIST {
/ **
*添字から出発して、ノードを定義1。
* /
静的 クラスノード{
パブリック整数データ、
公共次ノードと、
パブリックノード(整数データ){
この .DATA = データ;
}
}
// ヘッダノード定義
公開ノードヘッド;
/ **
*リストを初期化するため
* @paramのヘッド
* /
パブリックLINKLIST(ノードヘッド){
この .head = ヘッド;
}
パブリックLINKLIST(){
}
// データルックアップノード
のパブリックノードfindNodeByData(整数データ){
ノード現ノード = ヘッドと、
一方(!現ノード= ヌル!&& currentNode.data.equals(データ)){
現ノード = currentNode.next;
}
戻り現ノードを;
}
// インデックスに従ってノードを見つける
公共FindNodeByIndexノード(int型のインデックス){
int型 NUM = 1 ;
ノード現ノード = ヘッドと、
一方(現ノード=!ヌル &&インデックス=!NUM){
現ノード = currentNode.next;
NUM ++ ;
}
戻り現ノードは;
}
// インサート要素(指定された要素を挿入後方)
公共 ボイド insertNode(int型のインデックス、ノードノード){
IF(インデックス== 0 ){
node.next = ヘッド。
ヘッド = currentNode.data.equals(データ)){ノード;
リターン;
}
ノード現ノード = findNodeByIndex(インデックス)
ノードNEXTNODE = currentNode.next。
currentNode.next = ノード。
node.next = NEXTNODE。
}
// 根据值删除结点
公共 ボイドdeleteNodeByData(整数データ){
ノード現ノード = ヘッド。
ノードpreNode = nullを。
しばらく!(現ノード= nullを!&&
preNode = 現ノード。
現ノード = currentNode.next;
}
IF(preNode == nullの){ // 最初のヒット
IF(head.next =!ヌル){
ヘッド = head.next;
} 他{
ヘッド = ヌル;
}
} 他の IF(現ノード== nullの){ // 最後のヒット
preNode.next = ヌル;
} 他 = {
preNode.nextcurrentNode.next;
}
}
パブリック 静的 ボイドメイン(文字列[]引数){
LINKLIST LINKLIST = 新しい LINKLIST(新しいノード(100 ))。
linkList.insertNode( 1、新しいノード(3 ))。
linkList.insertNode( 1、新しいノード(4 ))。
linkList.insertNode( 1、新しいノード(5))。// 向中间插入
linkList.insertNode(0、新しいノード(20)); // 向头插入
linkList.insertNode(5、新しいですノード(21)である); // 尾に挿入
するSystem.out.println(linkList.findNodeByIndex(2 ).DATA)
のSystem.out.println(linkList.findNodeByData( 5 ).next.data) ;
のSystem.out.println(linkList.findNodeByIndex( 6。).DATA);
linkList.deleteNodeByData( 100); //は、中間ノード削除
linkList.deleteNodeByDataを(20); // 削除ヘッダノード
linkList.deleteNodeByData(21)。// ノード尾部を除去
するSystem.out.println(linkList.head.data);
}
}
議論のポイントを追加し、削除してください、だけでなく、国境の状況に関する筆記試験コードの後に、限りアイデアはまっすぐとして、大きな問題ではない書き込みコード