私はデータ構造体が初めてです。私はデータ構造を学ぶのは非常に興味がありますが、私はそれについて健康なチュートリアルを見つけませんでしたので、誰かが私を助けてくれると思ってここに投稿しています。私はリンクリストの理論を知っていますが、実装中は完全に空白です。誰かが私にそれがどのように機能するのかを理解させることができるなら、リンクされたリストをどのようにトラバースするか、挿入して削除するかのように、私に理解しやすいように実行コードを提供してください。 私は、この質問を重複してこれを棄却すると思う多くの人々がいることを知っています。あなたが間違いを見つけ出すのではなく、本当に役立つ良い解決策を私に提供してください。ありがとう。JavaのLinkedListデータ構造におけるトラバース、挿入、削除
-3
A
答えて
0
シンプルな実装。非効率性があります、彼らはあなたが理解できるようになっています:)それをより良くする方法を見ていくためにいくつかの研究を行ってください。
public class LinkedList {
public static class Node {
private Object data;
private Node next = null;
public Node(Object data) {
this.data = data;
}
public void setNext(Node n) {
next = n;
}
public Node getNext() {
return next;
}
public Object getData() {
return data;
}
}
public static void iterate(Node n) {
while (n != null) {
System.out.println(n.getData());
n = n.getNext();
}
}
public static void insert(Node newNode, Node after) {
newNode.setNext(after.getNext());
after.setNext(newNode);
}
public static void delete(Node toDelete, Node root) {
Node n = root;
while (n.getNext() != toDelete) {
n = n.getNext();
}
n.setNext(toDelete.getNext());
}
public static void main(String[] args) {
Node a = new Node("a");
Node b = new Node("b");
Node c = new Node("c");
// append
a.setNext(b);
b.setNext(c);
// iterate
System.out.println("Initial list");
iterate(a);
// insert d after b
Node d = new Node("d");
insert(d, b);
// iterate again
System.out.println("After insert");
iterate(a);
// delete d
delete(d, a);
// iterate again
System.out.println("After delete");
iterate(a);
}
}
+0
ありがとう非常にバディ@adamreeve、それは私の多くを助けた。 :) – Vivek
0
あなたがYouTubeにアクセスしてDerek Banasを検索すると、LinkedListsの素晴らしいビデオとその実装方法を見つけることができます。彼は一種のスピードを話しますが、内容は私の意見で非常によく教えられています。彼のビデオに続いて、ビデオの後で私はあなたがより良い理解を持っていると思う。アペンド、挿入、削除、および反復処理を示すリンクリストの
関連する問題
- 1. Railsアプリケーションにおける複合データ構造のトラバース
- 2. 深いデータ構造をトラバースしてオブジェクトを削除する
- 3. Javaにおける置換のためのデータ構造
- 4. LinkedListの中にJavaを挿入する
- 5. 高速ランダムアクセス、検索、挿入、削除のための効率的なデータ構造
- 6. ハスケルのデータ構造体への挿入
- 7. Cassandra:テーブル構造を削除せずにデータを削除する
- 8. JavaでLinkedListのノードを削除する
- 9. LinkedListを自分の配列にインスタンス化するJavaの問題。データ構造コース
- 10. LinkedListでインデックスJavaを削除する
- 11. トラバース・オブジェクト構造体のJavascript
- 12. Javaのデータ構造
- 13. 削除データは、挿入バルク文の
- 14. Redis - 文字列を1つずつ挿入して一度に削除するデータ構造
- 15. Java LinkedList:物を特定のインデックスに挿入するには?
- 16. O(ログn)以下の削除およびアクセス時間のSTLデータ構造
- 17. LinkedList最後に挿入
- 18. リンクリストタイプのデータ構造に「削除アルゴリズム」を実装する
- 19. LinkedList時間トラバースのイテレーター
- 20. 効率的な挿入、削除、最大値検索でキャッシュを設計するためのデータ構造
- 21. C#LinkedListのデータ構造をベースから操作する
- 22. C++でのデータ構造。リンクリストのノードの先頭に挿入
- 23. Double LinkedListと削除
- 24. java collectionsデータ構造
- 25. Javaデータ構造リファレンス
- 26. 特定の挿入と削除を伴うユーザー定義コレクションの正しいアルゴリズムとデータ構造
- 27. Entity Frameworkを使用してデータを挿入および削除する問題
- 28. XML構造内のノードを削除するJava DOM
- 29. 削除挿入バー
- 30. Javaのクラスディクショナリ(データ構造体)
私の友人には大きな質問です。がんばろう。 –
'java.util.LinkedList'を見てください。おそらくいくつかのオーバーヘッドはありません。しかし、これはあなたにいくつかのポイントを開始する必要があります。 – dpr