[解決済み] Javaでリンクリストのデータ構造を作成するには?[クローズド]
2022-06-14 16:48:57
質問
Javaでリンクリストを作るには、どのような方法がありますか?
どのように解決するのですか?
Java に慣れている開発者にとって明白な解決策は LinkedList クラスですでに提供されている java.util . しかし、何らかの理由であなた自身の実装を作りたいとします。ここでは、リストの先頭に新しいリンクを挿入し、リストの先頭から削除し、リストをループしてその中に含まれるリンクを表示するリンクリストの簡単な例を示します。 機能拡張 この実装の強化点としては 二重リンクリスト にメソッドを追加することです。 を挿入する と 削除 を中間または末尾に追加し、さらに 得る と ソート メソッドもあります。
ノート : この例では、Linkオブジェクトは実際には別のLinkオブジェクトを含んでいません。 nextLink は実際には別のリンクへの参照に過ぎません。
class Link {
public int data1;
public double data2;
public Link nextLink;
//Link constructor
public Link(int d1, double d2) {
data1 = d1;
data2 = d2;
}
//Print Link data
public void printLink() {
System.out.print("{" + data1 + ", " + data2 + "} ");
}
}
class LinkList {
private Link first;
//LinkList constructor
public LinkList() {
first = null;
}
//Returns true if list is empty
public boolean isEmpty() {
return first == null;
}
//Inserts a new Link at the first of the list
public void insert(int d1, double d2) {
Link link = new Link(d1, d2);
link.nextLink = first;
first = link;
}
//Deletes the link at the first of the list
public Link delete() {
Link temp = first;
if(first == null){
return null;
//throw new NoSuchElementException(); // this is the better way.
}
first = first.nextLink;
return temp;
}
//Prints list data
public void printList() {
Link currentLink = first;
System.out.print("List: ");
while(currentLink != null) {
currentLink.printLink();
currentLink = currentLink.nextLink;
}
System.out.println("");
}
}
class LinkListTest {
public static void main(String[] args) {
LinkList list = new LinkList();
list.insert(1, 1.01);
list.insert(2, 2.02);
list.insert(3, 3.03);
list.insert(4, 4.04);
list.insert(5, 5.05);
list.printList();
while(!list.isEmpty()) {
Link deletedLink = list.delete();
System.out.print("deleted: ");
deletedLink.printLink();
System.out.println("");
}
list.printList();
}
}
関連
-
Methodのinvokeメソッド実装のJavaリフレクション
-
IDEA パッケージステートメントの欠落
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] ファイルを作成し、書き込むにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
java の例外が発生しました java
-
IllegalArgumentException この例外を解決する方法
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
jd-gui Java Exceptionが発生しました。
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
Spring boot runs with Error creating bean with name 'entityManagerFactory' defined in class path resource
-
VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
IDEA パッケージステートメントの欠落
-
このラインで複数のマーカーを解決する方法