실현 링크
4493 단어 데이터 구조
링크 클래스
package com.java.LinkList;
public class Node {
public int data;
public Node next;
public Node(Node next) {
this.next=next;
}
public Node(int data){
this.data=data;
}
}
테스트 클래스
package com.java.LinkList;
import com.java.linkStack.linkStack;
public class LinkList {
private Node head;
private Node curnode;
public LinkList() {
head=new Node(null);
curnode=head;
}
public void addNodeLast(int data){
Node node=new Node(data);
curnode=head;
while(curnode.next!=null){
curnode=curnode.next;
}
curnode.next=node;
}
public void addFirst(int data){
Node node=new Node(data);//
node.next=head.next;
head.next=node;
}
public void add(int index,int data){
if(index>this.size()||index<0){
System.out.println(" ");
return;
}
int count=0;
curnode=head;
Node temp=null;
if(index==0) this.addFirst(data);
else{
temp=curnode.next;
while(temp!=null){
curnode=temp;
temp=temp.next;
count++;
if(count==index){
Node node=new Node(data);
node.next=curnode.next;
curnode.next=node;
break;
}
}
}
}
public void peek(){
curnode=head;
while(curnode.next!=null){
curnode=curnode.next;
}
System.out.println(curnode.data);
}
public int size(){
int size=0;
curnode=head;
while(curnode.next!=null){
curnode=curnode.next;
size++;
}
return size;
}
public void display(){
curnode=head;
while(curnode.next!=null){
System.out.println(curnode.next.data);
curnode=curnode.next;
}
}
public void addNode(int data1,int data2){
Node temp=head;
if(temp.next==null)System.out.println(" , "+data1);
while(temp.next!=null){
if(temp.next.data==data1){
Node node=new Node(data2);
node.next=temp.next;
temp.next=node;
break;
}
if(temp.next.next!=null){
temp=temp.next;
}else{
System.out.println(" "+data1+" ");
break;
}
}
}
public void clear(){
if(head.next==null){
throw new RuntimeException(" ");
}
Node temp=null;
while(head.next!=null){ // ,
temp=head.next;
head.next=temp.next;
temp.next=null;
}
}
public void deleteFirst(){
if(head.next==null){
throw new RuntimeException(" , ");
}
Node temp=head.next;
head.next=head.next.next;
temp.next=null;//
}
public int get(int index){
if(head.next==null){
throw new RuntimeException(" ");//
} // ,
// ,
if(index>(this.size()-1)||index<0){
throw new RuntimeException(" ");
}
int count=0; //
curnode=head.next;
while(curnode!=null){
if(count==index){
break;
}
count++;
curnode=curnode.next;
}
return curnode.data;
}
public void delete(int index){
if(head.next==null){
throw new RuntimeException(" ");//
} // ,
int count=0; // ,
boolean bl=false;
curnode=head;
while(curnode.next!=null){
if(count==index){
Node temp=curnode.next;
curnode.next=curnode.next.next;
temp.next=null;
bl=true;
break;
}
count++;
curnode=curnode.next;
}
if(bl==false)System.out.println(" ");
}
public void deleteNode(int data){
Node temp=head;
if(temp.next==null)System.out.println(" , !");
while(temp.next!=null){
curnode=temp.next;
if(curnode.data==data){
temp.next=curnode.next;
curnode.next=null;
break;
}
if(curnode.next!=null){
temp=curnode;
curnode=curnode.next;
}else{
System.out.println(" , !");
break;
}
}
}
public void overTurnList(){
if(head.next==null){
throw new RuntimeException(" ");
}
Node curnode=head.next;
head.next=null;
Node temp=null;
while(curnode!=null){
temp=curnode.next;
curnode.next=head.next;
head.next=curnode;
curnode=temp;
}
}
}
결실
링크 가 비어 있 습 니 다. 삭제 에 실 패 했 습 니 다!3. 45 링크 길이 가 3 이 고 데이터 값 이 2 인 노드 를 삭제 합 니 다. 이 노드 를 찾 지 못 했 습 니 다. 삭제 에 실 패 했 습 니 다!5. 데이터 값 이 5 인 결점 을 삭제 합 니 다. 4 링크 의 길 이 는 2, 3, 4 입 니 다. 3 전에 데 이 터 를 삽입 합 니 다. 2, 3, 4 는 두 번 째 노드 를 얻 고 3 은 첫 번 째 노드 를 얻 습 니 다. 2, 3, 4 는 첫 번 째 노드 를 삭제 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.