패키지 com.demo.calculate; 수입에는 android.app.Activity; 수입 android.os.Bundle; 수입 android.view.View에서; 수입 com.demo.calculate.bean.LinkedList; 공용 클래스 LinkArrayActivity는 활동 {확장 @Override가 무효에서 onCreate (번들 savedInstanceState) {보호 super.onCreate (savedInstanceState를); 된 setContentView (R.layout.activity_chain); findViewById를 (R.id.btn_createSingleChain) .setOnClickListener (새 View.OnClickListener () { @Override 공공 무효 온 클릭 (보기 V) { LinkedList의 LinkedList의 = 새 LinkedList의 (); linkedList.insertNode (0,2); linkedList.insertNode (1,3); linkedList.insertNode (2,4); linkedList.insertNode (1,6); linkedList.insertNode (4,7); linkedList.removeNode (5); linkedList.show (); } }); } }
com.demo.calculate.bean 패키지, 가져 오기 android.util.Log; / ** * 만약 삽입 및 노드의 삭제를 찾을 필요가있을 때 * * @author의 XJZ * / 공용 클래스 LinkedList의 { 개인 노드 헤드, 마지막으로 개인 노드를, 개인 지능 크기; / ** * @param 지수 * / // 노드 삽입 공공 무효의 insertNode (INT 인덱스, 데이터를 INT) { IF (인덱스 <0 || 인덱스> 크기) { 제 ( "범위를 넘어리스트 노드!") IndexOutOfBoundsException가 새로운 새를 던져 ; } // 노드에 삽입되는 노드 = 새로운 새 insertNode 노드 (데이터); // 빈리스트가 삽입 IF (크기 == 0) { 헤드 = insertNode; 마지막 = insertNode; IF 다른} (인덱스 == 0) { // 삽입 헤드 insertNode.next = 헤드, 헤드 = insertNode; }는 다른 IF (인덱스 == 사이즈) { // 꼬리 삽입 last.next = insertNode; 마지막 = insertNode; } {다른 // 중간 노드를 삽입 (. 인덱스 - 1) 노드 prevNode = GET; insertNode.next = prevNode.next; prevNode.next = insertNode; } 크기 ++; } / ** * 노드 제거 * * @param 지수 * 예외 : * / {대중가 removeNode 노드 (INT 지수) IF (색인 <0 || 인덱스> 사이즈) { 드로 IndexOutOfBoundsException가 새로운 새로운 ( "리스트 노드의 범위를 벗어난"); } 노드가 removeNode = NULL; // 헤드 노드를 제거 (인덱스 == 0) {IF 가 removeNode = 헤드, 헤드 = head.next; }는 다른 IF (인덱스 == 크기) { // 꼬리 노드를 제거 노드 prevNode = GET (인덱스 - 1.) 가 removeNode = prevNode.next; prevNode.next = NULL; 마지막 = prevNode을; }는 다른 { / / 중간 노드를 삭제 - 노드 prevNode = GET. (1 인덱스) 가 removeNode = prevNode.next; ; prevNode.next = prevNode.next.next } size--; 가 removeNode를 반환; } / ** * 모든 노드 정보 표시 * / 공공 무효 쇼 () { ; 노드 = currentNode 헤드 그동안 (true로) { (==는 null currentNode) {IF를 BREAK; } Log.i ( "태그"currentNode.data + "====== ================ 데이터"); currentNode = currentNode.next; } } 전용 노드 GET INT (인덱스) { IF (색인 <0 || 인덱스> = 크기) { 은 "범위를 넘어리스트 노드!"IndexOutOfBoundsException이 새로운 새를 (던져) 내가 인덱스를 <;에 대한 (I = 0 int로 내가 ++) { } 노드 온도 = 헤드; 온도 = temp.next; } 반환 온도; } } 클래스 노드 { int 데이터; 다음 노드; 공중 기지국 (int 데이터) { this.data = 데이터; } }