単一リンクリストの操作方法

パッケージnode.SinglyLinkedList; 

/ ** 
 * @author Eightn0 
 * @create 2021-03-12 14:12 
 * 

///首先定义Nodeクラス

クラスNode { 
      int data; 
      int np; 
      文字列名; 
      次のノード; 

      public Node(int data、int np、String names){ 
            this.data = data; 
            this.np = np; 
            this.names =名前; 
            this.next = null; 
      } 
} 

public class LinkedList { 
      private Node first; 
      最後のプライベートノード。
      プライベートノードdelNode; 
      ノードnewNode; 
 
      //現在のリンクリストが空のリンクリストであるかどうかを判別します
      public boolean isEmpty(){ 
            return first == null; 
      } 

      //現在のリンクリストの内容を出力するために使用されますpublicvoid 
      print(){ 
            Node current = first; 
            while(current!= null){ 
                  System.out.println (current .data + current.names + current.np); 
                  current = current.next; 
            } 
            System.out.println(); 
      } 

      //指定されたノードを現在のリンクリストに挿入するために使用されますpublicvoid 
      insert(int data、文字列名、int np){ 
            newNode = new Node(data、np、names); 
            if(this.isEmpty()){ 
                  first = newNode; 
                  last = newNode; 
            } else { 
                  last.next = newNode; 
                  last = newNode; 
            } 
      } 

      //リストの最初のノードを削除し
      ますpublicvoid deletePre(){ 
                  first = first.next; 
      } 

      //リストの途中のノードを削除し、前のノードのポインターを削除しますノードのノード。ノードの次のノードを削除するには
      publicvoid deleteMid(){ 
            newNode = first; 
            Node tmp = first; 
            while(newNode.data!= delNode.data){ 
                  tmp = newNode; 
                  newNode = newNode.next; 
            } 
            tmp.next = delNode .next; 
      } 

      //リストの最後のノードを削除し
      ますpublicvoid deleteLast(){ 
            newNode = first;
            while(newNode.next!= last)newNode = newNode.next; 
            newNode.next = last.next; 
            last = newNode; 
      } 

      / *ノードを挿入します:
      *テーブルの先頭に挿入します:新しいノードがを指すようにしますテーブルの先頭、テーブルの先頭を新しいノードに移動します
      *テーブルの最後に挿入します:テーブルの最後を新しいノードにポイントし、新しいノードをnullにポイントします
      *の中央に挿入しますXY、Xが新しいノードを指すようにし、新しいノードがYを指すようにする
      * * / 
      public void insert(Node ptr){ 
            Node tmp; 
            Node newNode; 
            if(this.isEmpty()){ 
                  first = ptr; 
                  last = ptr; 
            } else { 
                  if(ptr.next == first){//最初のノードを挿入
                        ptr.next = first; 
                        first = ptr;
                  } else { 
                        if(ptr.next == null){//最後のノードを挿入
                              last.next = ptr; 
                              last = ptr; 
                        } else {//中間ノードを挿入
                              newNode = first; 
                              tmp = first; 
                              while(ptr.next!= newNode.next){ 
                                    tmp = newNode; 
                                    newNode = newNode.next; 
                              } 
                              tmp .next = ptr; 
                              ptr.next = newNode; 
                        } 
                  } 
            } 

      } 
}}

おすすめ

転載: blog.csdn.net/vivian233/article/details/114697663