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());
	}
}