qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          用java簡單的實現(xiàn)單鏈表的基本操作

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

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

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

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

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

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

               // 在任意位置插入節(jié)點 在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;
               }

               // 刪除任意位置的節(jié)點
               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;
               }

               // 根據(jù)節(jié)點的data刪除節(jié)點(僅僅刪除第一個)
               public Node deleteByData( int data) {
                    Node current = first;
                    Node previous = first; //記住上一個節(jié)點
                     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;
               }

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

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

               // 根據(jù)數(shù)據(jù)查找節(jié)點信息
               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

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 连州市| 巴塘县| 茌平县| 皋兰县| 右玉县| 新龙县| 萝北县| 新巴尔虎左旗| 普兰店市| 乐亭县| 公安县| 五指山市| 江孜县| 逊克县| 渝中区| 宕昌县| 靖边县| 平利县| 仁怀市| 高淳县| 青铜峡市| 浑源县| 灵台县| 莲花县| 扎赉特旗| 陈巴尔虎旗| 合阳县| 柳江县| 红河县| 安徽省| 宣威市| 通州区| 来凤县| 藁城市| 长丰县| 阳信县| 株洲市| 梁河县| 安泽县| 六安市| 招远市|