JAVAはシングルチェーン表の基本操作を実現します.
2455 ワード
シングルチェーン表の実現を復習して、しっかりした基礎、シングルチェーン表の構造はくどくど述べていないで、直接コードを見て、注釈のはとても明らかです.
注意:挿入と削除操作時に、境界を越えるかどうかの判断が必要です.どうやって境界を判断しますか?修正していると思いました
注意:挿入と削除操作時に、境界を越えるかどうかの判断が必要です.どうやって境界を判断しますか?修正していると思いました
public class linkList {
// ,
class Node{
private int data;
private Node next=null;
public Node(int data) {
super();
this.data = data;
}
}
Node head=null;//
//
public void addNode(int a) {
Node newnode=new Node(a);//
if(head==null){
head=newnode;
return;
}
Node temp=head; // ( )
while(temp.next!=null){// , 。
temp=temp.next; // , 。
}
temp.next=newnode; //temp , next
}
// index
public void insertnodebyindex(int index,int i){
// ( , )
if(index<1){
System.out.println(" ");
return;
}
int length=0;//
//
Node node=new Node(i);
//
Node temp=head;
while(temp.next!=null){
//
length++;
if(index==length){
//1.temp
node.next=temp.next;
//2. p
temp.next=node;
return;
}
// index
temp=temp.next;
}
}
// index
public void deleteNode(int index){
if(index<1){
System.out.println(" ");
return;
}
Node temp=head;
int length=0;
while(temp.next!=null){
length++;
if(index==length){
// temp temp
// temp temp
temp.next=temp.next.next;
return;
}
temp=temp.next;
}
}
//
public int size(){
int length=1;
Node temp=head;
while(temp.next!=null){
length++;
temp=temp.next;
}
return length;
}
//
public void printlist(){
Node temp=head;
while(temp!=null){
System.out.print(temp.data);
temp=temp.next;
}
}
public static void main(String[] args) {
linkList list=new linkList();
list.addNode(2);
list.addNode(3);
list.addNode(4);
list.addNode(5);
list.addNode(8);
list.addNode(0);
list.addNode(6);
list.printlist();
System.out.println("\t");
//Node insertnode=new Node(0);
// 3
list.insertnodebyindex(3 ,9);
list.printlist();
System.out.println("\t");
//
list.deleteNode(3);
list.printlist();
System.out.println("\t");
System.out.println(list.size());
}
}