チェーンテーブル(1)-単純なチェーンテーブルを定義します.


/*
初めてCSDNで技术のブログを书いて、それから一连のアルゴリズムの実现についてのblogを书いて、喜んで喷かないで、一绪に交流を讨论することを歓迎して、文章の中でもし言叶が役に立つならば、指摘してください、ありがとうございます.コードがより優れている場合は、一緒に共有してください.
まず、大きな整数演算の実装、チェーンテーブルの逆置き、チェーンテーブルの分割など、チェーンテーブルに関するいくつかの計算です.
*/
以前はチェーンテーブルを実装する際にポインタドメイン、データドメインとチェーンテーブルを1つのクラスにしていましたが、後でこのチェーンテーブルを使用してポインタドメインを呼び出すのは難しいことに気づきましたので、ポインタドメインとデータドメインとチェーンテーブルの間を分けて、このチェーンテーブル定義フォーマットは私がブロガーを見たので、そのブログを見ることができてラッキーでした.ありがとうございます.
class Node{
	int data;	//   
	Node next;	//   
	public Node(int data){
		this.data = data;
	}
}

後でコードのフォーマットはすべてまとめられて、まずすべて方法の解説で、それから方法とクラスの間を結合します
まずチェーンテーブルクラスを定義します.フィールドはprivateでは使用できません.外部で呼び出されるためです.
class Link{
	public Node head;  //   
	public Node current;  //  
}

チェーンテーブル構造を定義した後、チェーンテーブルにデータを追加するには、AddLink()のメソッドを書きます.このメソッドでは、データを入力してチェーンテーブルノードに保存し、ヘッダノードが空の場合は、データをヘッダノードとして保存する必要があります.
public void addLink(int data){
	//     ,         
	if(head == null){
		head = new Node(data);
		current = head;
	}
	else{
		current.next = new Node(data);
		current = current.next;	//     ,         
	}
}

ここではチェーンテーブルのノードを削除したり修正したりする必要はありませんので、ノードを印刷する方法print()をもう1つ書けばいいです.ヘッダノードを入力する必要があります.
public void print(Node node){
	if(node == null){
		return;
	}
	current = node;
	while(current != null){
		System.out.print(current.data+"\t");
		current = current.next;
	}
}

完全なチェーンテーブルクラスは次のとおりです.
class Link{
	public Node head;
	public Node current;
	public void addLink(int data){
		if(head == null){
			head = new Node(data);
			current = head;
		}
		else{
			current.next = new Node(data);
			current = current.next;
		}
	}
	public void print(Node node){
		if(node == null){
			return;
		}
		current = node;
		while(current != null){
			System.out.print(current.data+"\t");
			current = current.next;
		}
	}
}
class Node{
	int data;
	Node next;
	public Node(int data){
		this.data = data;
	}
}
メインメソッドでaddLink()メソッドを呼び出すとデータが追加されprintメソッドでデータが印刷されます
	public static void main(String[] args){
		Link root = new Link();
		Random r = new Random();
		for(int i = 0;i<5;i++){
			root.addLink(i);
		}
		root.print(root.head);
	}