効率的な一方向チェーンテーブルの逆シーケンス出力を実現するにはどうすればいいですか?(詳細)
要因を考慮し、効率的に多方面の要因を比較する必要がある.データ量が大きいかどうか 空間に制限があるかどうか 元のチェーンテーブルの構造を に変更できますか? 時間複雑度に制限があるかどうか チェーンテーブルノードが出力する必要がある要素は複数あります.たとえば、チェーンテーブルに保存されているのはカスタムオブジェクトで、複数のフィールドタイトルがあります. 01.まず簡単なJava版の単項チェーンテーブルを実現して任意の長さの任意の数値のチェーンテーブルを構築することを学び、頭挿法、順次出力チェーンテーブル を遍歴する.
02.上記の単一チェーンテーブルの逆シーケンス出力効率の高い出力チェーンテーブルを作成し、スタックを直接使用して記憶する~~
03.テストを行う
package com.szs.list;
/**
*
* @author Administrator
*
*/
public class MyLinkedList {
public int data;
public MyLinkedList next;
public MyLinkedList(int data) {
this.data=data;
this.next=null;
}
public MyLinkedList() {
this.data=-1;
this.next=null;
}
}
02.上記の単一チェーンテーブルの逆シーケンス出力効率の高い出力チェーンテーブルを作成し、スタックを直接使用して記憶する~~
package com.szs.list;
import java.util.Random;
import java.util.Stack;
public class InverseSingleList {
public static void main(String[] args) {
MyLinkedList head= new MyLinkedList();
createList(head);
inverseList(head);
}
/**
* ,
*/
public static void createList(MyLinkedList head) {
Random random = new Random(System.currentTimeMillis());
int len = random.nextInt(10);
for(int i=0;i stack = new Stack<>();
System.out.println(" ");
while(head2!=null) {
stack.push(head2.data);
head2=head2.next;
}
while(!stack.isEmpty()) {
System.out.print(stack.pop()+"\t");
}
}
}
03.テストを行う
25 69 10 28 23 89 32 2 23 length=9
23 2 32 89 23 28 10 69 25
-------
28 35 83 99 88 length=5
88 99 83 35 28