Javaは、双方向リンクリストを追加および削除する機能を実装します。完全なコード
Package Linked; class linkedtable {} public class linkedtabletest {//単一のリンクリストstatic node node1 = new node( "name1"); static node node2 = new node( "name2"); static node node3 = new node( "name3"); static node node4 = new node( "name4"); static node node5 = new node( "name5"); public static void main(string [] args){// pointer setpoint(); // system.out.println( "*******初期リンクリスト**********"); out(node1、node5); System.out.println(); // node2 addnode(node2、node3)の背後にノードを挿入します。 // system.out.println( "******* insert node2.5 *********"); out(node1、node5); System.out.println(); // node node2.setNextNode(node3)を削除します。 node3.setNextNodef(node2); // system.out.println( "******* delete node2.5 *******"); out(node1、node5); System.out.println(); } // pointer public public static void setpoint(){// pointer node1.setnextnode(node2);を前方に設定します。 node2.setNextNode(node3); node3.setNextNode(node4); node4.setNextNode(node5); //逆ポインターnode5.setnextNodef(node4); node4.setnextnodef(node3); node4.setnextnodef(node3); node3.setNextNodef(node2); node2.setnextnodef(node1); } //単一のリンクリストを介してループpublic static void outlinked(node startnode){node node = new node(); node.setNextNode(startNode); do {node = node.getNextNode(); System.out.print(node.getName()+"----"); } while(node.getNextNode()!= null); } //単一のリンクリストを介して逆ループしますpublic static void outlinkedf(node endnode){node node = new node(); node.setNextNodef(endnode); do {node = node.getNextNodef(); System.out.print(node.getName()+"----"); } while(node.getNextNodef()!= null); } // public static void out(node startnode、node endnode){outlinked(startnode); System.out.println(); outlinkedf(endnode); } // insert node public static void addnode(node prenode、node nextnode){node node_add = new node( "name2.5"); node_add.setNextNode(prenode.getNextNode()); prenode.setNextNode(node_add); node_add.setNextNodef(nextNode.getNextNodef()); NextNode.setNextNodef(node_add); }} class node {private string name;プライベートノードNextNode;プライベートノードNextNodef; public void setName(string name){this.name = name; } public void setNextNode(node nextnode){this.nextnode = nextnode; } public void setNextNodef(node nextnodef){this.nextnodef = nextnodef; } public string getname(){return this.name; } public node getNextNode(){return this.nextnode; } public node getNextNodef(){return this.nextnodef; } public node(string name){this.name = name; this.nextnode = null; } public node(){}}1.ノードノードの構築には、次の要素の位置を前方に保存し、もう1つは次の要素の位置を逆保存するための2つのポインターが必要です。
パラメーター説明:
名前:ノード自身の情報を保存するために使用されます
NextNode:フォワードポインターを保存するために使用されます
NextNodef:逆ポインターを保存するために使用されます
class node {private string name;プライベートノードNextNode;プライベートノードNextNodef; public void setName(string name){this.name = name; } public void setNextNode(node nextnode){this.nextnode = nextnode; } public void setNextNodef(node nextnodef){this.nextnodef = nextnodef; } public string getname(){return this.name; } public node getNextNode(){return this.nextnode; } public node getNextNodef(){return this.nextnodef; } public node(string name){this.name = name; this.nextnode = null; } public node(){}}2。ノードを作成し、ポインターを設定してノードに接続します
フォワードポインター:次のノードを指します
リバースノード:前のノードを指します
//単一のリンクリストStatic Node node1 = new Node( "name1")を作成します。 static node node2 = new node( "name2"); static node node3 = new node( "name3"); static node node4 = new node( "name4"); static node node5 = new node( "name5");
public static void setpoint(){//前方のpointer node1.setNextNode(node2);を設定します。 node2.setNextNode(node3); node3.setNextNode(node4); node4.setNextNode(node5); //逆ポインターnode5.setnextNodef(node4)を設定します。 node4.setnextnodef(node3); node3.setNextNodef(node2); node2.setnextnodef(node1); }3。リンクリストを出力を介してループします
public static void outlinked(node startnode){node node = new node(); node.setNextNode(startNode); do {node = node.getNextNode(); System.out.print(node.getName()+"----"); } while(node.getNextNode()!= null); } public static void outlinkedf(node endnode){node node = new node(); node.setNextNodef(endnode); do {node = node.getNextNodef(); System.out.print(node.getName()+"----"); } while(node.getNextNodef()!= null); }4.ノードを追加します
public static void addnode(node prenode、node nextnode){node node_add = new node( "name2.5"); node_add.setNextNode(prenode.getNextNode()); prenode.setNextNode(node_add); node_add.setNextNodef(nextNode.getNextNodef()); NextNode.setNextNodef(node_add); }5.ノードを削除します
node2.setNextNode(node3); node3.setNextNodef(node2);
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。