qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          用java簡單的實現單鏈表的基本操作

           此代碼僅供參考,如有疑問歡迎評論:

          package com.tyxh.link;
          //節點類
          public class Node {
               protected Node next; //指針域
               protected int data;//數據域
              
               public Node( int data) {
                     this. data = data;
               }
              
               //顯示此節點
               public void display() {
                    System. out.print( data + " ");
               }
          }

          package com.tyxh.link;
          //單鏈表
          public class LinkList {
               public Node first; // 定義一個頭結點
               private int pos = 0;// 節點的位置

               public LinkList() {
                     this. first = null;
               }

               // 插入一個頭節點
               public void addFirstNode( int data) {
                    Node node = new Node(data);
                    node. next = first;
                     first = node;
               }

               // 刪除一個頭結點,并返回頭結點
               public Node deleteFirstNode() {
                    Node tempNode = first;
                     first = tempNode. next;
                     return tempNode;
               }

               // 在任意位置插入節點 在index的后面插入
               public void add(int index, int data) {
                    Node node = new Node(data);
                    Node current = first;
                    Node previous = first;
                     while ( pos != index) {
                        previous = current;
                        current = current. next;
                         pos++;
                    }
                    node. next = current;
                    previous. next = node;
                     pos = 0;
               }

               // 刪除任意位置的節點
               public Node deleteByPos( int index) {
                    Node current = first;
                    Node previous = first;
                     while ( pos != index) {
                         pos++;
                        previous = current;
                        current = current. next;
                    }
                     if(current == first) {
                         first = first. next;
                    } else {
                         pos = 0;
                        previous. next = current. next;
                    }
                     return current;
               }

               // 根據節點的data刪除節點(僅僅刪除第一個)
               public Node deleteByData( int data) {
                    Node current = first;
                    Node previous = first; //記住上一個節點
                     while (current. data != data) {
                         if (current. next == null) {
                              return null;
                        }
                        previous = current;
                        current = current. next;
                    }
                     if(current == first) {
                         first = first. next;
                    } else {
                        previous. next = current. next;
                    }
                     return current;
               }

               // 顯示出所有的節點信息
               public void displayAllNodes() {
                    Node current = first;
                     while (current != null) {
                        current.display();
                        current = current. next;
                    }
                    System. out.println();
               }

               // 根據位置查找節點信息
               public Node findByPos( int index) {
                    Node current = first;
                     if ( pos != index) {
                        current = current. next;
                         pos++;
                    }
                     return current;
               }

               // 根據數據查找節點信息
               public Node findByData( int data) {
                    Node current = first;
                     while (current. data != data) {
                         if (current. next == null)
                              return null;
                        current = current. next;
                    }
                     return current;
               }
          }

          package com.tyxh.link;
          //測試類
          public class TestLinkList {
               public static void main(String[] args) {
                    LinkList linkList = new LinkList();
                    linkList.addFirstNode(20);
                    linkList.addFirstNode(21);
                    linkList.addFirstNode(19);
                     //19,21,20
                    linkList.add(1, 22); //19,22,21,20
                    linkList.add(2, 23); //19,22,23,21,20
                    linkList.add(3, 99); //19,22,23,99,21,20
                    linkList.displayAllNodes();
          //        Node node = linkList.deleteFirstNode();
          //        System.out.println("node : " + node.data);
          //        linkList.displayAllNodes();
          //        node = linkList.deleteByPos(2);
          //        System.out.println("node : " + node.data);
          //        linkList.displayAllNodes();
          //        linkList.deleteFirstNode();
                    Node node = linkList.deleteByData(19);
          //        Node node = linkList.deleteByPos(0);
                    System. out.println( "node : " + node. data);
                    linkList.displayAllNodes();
                    Node node1 = linkList.findByPos(0);
                    System. out.println( "node1: " + node1. data);
                    Node node2 = linkList.findByData(22);
                    System. out.println( "node2: " + node2. data);
               }
          }

          posted on 2013-09-10 10:47 順其自然EVO 閱讀(378) 評論(0)  編輯  收藏 所屬分類: DB2

          <2013年9月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鲁甸县| 丰城市| 敖汉旗| 阜南县| 郧西县| 东丰县| 札达县| 容城县| 泸溪县| 麻阳| 临安市| 福安市| 且末县| 开鲁县| 定兴县| 五原县| 克东县| 阜阳市| 孟津县| 赣榆县| 延寿县| 和平区| 定结县| 赤壁市| 铜山县| 永和县| 北京市| 靖西县| 香河县| 屏山县| 四子王旗| 左云县| 平武县| 如东县| 铜梁县| 班玛县| 临汾市| 大冶市| 石泉县| 兴隆县| 舒城县|