JAVAは一方向チェーンテーブルの削除操作を実現
コンセプト:
たんほうこうチェーンテーブル
)はチェーンテーブル
チェーンテーブルのリンク方向が一方向であることを特徴とし、チェーンテーブルへのアクセスはヘッドから順番に読み出す.チェーンテーブルはポインタを使用しています
構築するリスト;チェーンテーブルは1つのノードで組み立てられているので、ノードリストとも呼ばれます.各ノードにはポインタメンバー変数があります
リスト内の次のノードを指します.
リストはノード
構成として、headポインタは、最初にヘッダノードとなり、最後にnuLLを指すポインタに終了する.
ノード情報と次のノードオブジェクトを格納するノードクラス.
チェーンテーブルクラスは、チェーンテーブルを操作する方法を提供します.
チェーンテーブルを操作して削除
たんほうこうチェーンテーブル
)はチェーンテーブル
チェーンテーブルのリンク方向が一方向であることを特徴とし、チェーンテーブルへのアクセスはヘッドから順番に読み出す.チェーンテーブルはポインタを使用しています
構築するリスト;チェーンテーブルは1つのノードで組み立てられているので、ノードリストとも呼ばれます.各ノードにはポインタメンバー変数があります
リスト内の次のノードを指します.
リストはノード
構成として、headポインタは、最初にヘッダノードとなり、最後にnuLLを指すポインタに終了する.
ノード情報と次のノードオブジェクトを格納するノードクラス.
public class Node {
//
public String data; //
public Node next; //
public Node(String data) { //
this.data = data;
}
public void add(Node node) { //
if (this.next == null) { // , next
this.next = node;
} else { // , next
this.next.add(node);
}
}
public void print() { //
if (this.next != null) {
System.out.print(this.data + "-->");
this.next.print();
} else {
System.out.print(this.data + "
");
}
}
public boolean search(String data) { //
if (this.data.equals(data)) {
return true;
}
if (this.next != null) {
return this.next.search(data);
} else {
return false;
}
}
public void delete(Node previous, String data) { //
if (this.data.equals(data)) {
previous.next = this.next;
} else {
if (this.next != null) {
this.next.delete(this, data);
}
}
}
}
チェーンテーブルクラスは、チェーンテーブルを操作する方法を提供します.
public class Link {
private Node root; //
public void addNode(String data) { //
Node newNode = new Node(data); //
if (this.root == null) { // ,
this.root = newNode;
} else { // ,
this.root.add(newNode);
}
}
public void print() { //
if (root != null) { //
this.root.print();
}
}
public boolean searchNode(String data) { //
return root.search(data); //
}
public void deleteNode(String data) { //
if (root.data.equals(data)) { //
if (root.next != null) {
root = root.next;
} else {
root = null;
}
} else {
root.next.delete(this.root, data);
}
}
}
チェーンテーブルを操作して削除
public class LinkDemo {
public static void main(String[] args) {
Link l = new Link();
l.addNode("A");
l.addNode("B");
l.addNode("C");
l.addNode("D");
System.out.println(" :");
l.print();
String searchNode = "B";
System.out.println(" :" + searchNode);
String result = l.searchNode(searchNode) ? " !" : " !";
System.out.println(" :" + result);
System.out.println(" :" + searchNode);
l.deleteNode(searchNode);
System.out.println(" :");
l.print();
}
}