tbwshc

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

          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; // 定義一個頭結點
            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;
            }
            // 刪除一個頭結點,并返回頭結點
            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 17:10 chen11-1 閱讀(1325) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 改则县| 得荣县| 北海市| 桂东县| 湘潭市| 永宁县| 平潭县| 梅河口市| 崇阳县| 新竹市| 石狮市| 无棣县| 小金县| 叙永县| 岳池县| 田林县| 大埔县| 炎陵县| 富裕县| 通渭县| 独山县| 宜阳县| 明水县| 清镇市| 屯留县| 柯坪县| 邹平县| 达日县| 余干县| 石狮市| 双流县| 珠海市| 博野县| 辽宁省| 石阡县| 汝州市| 晋宁县| 九寨沟县| 视频| 克拉玛依市| 乌鲁木齐县|