用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

面向对象的方法实现链表

2019-09-28 作者: whoami举报

[java]代码库

package LinkList;
//节点类
class Node{
    private Node next;
    private int value;
    Node(int val){
        value=val;
    }
    public int getValue() {
        return value;
    }
    public Node getNext() {
        return next;
    }
    public void setValue(int val) {
        value=val;
    }
    public void setNext(Node nex) {
        next=nex;
    }
}
 
class MyLinkList{
    private Node head;
    private Node tail;
    private int size=0;
    //添加节点
    public void append(int newData) {
        Node newNode=new Node(newData);
        size++;
        if(head==null) {
            head=newNode;
            tail=newNode;
            return;
        }
        tail.setNext(newNode);
        tail=newNode;
    }
    //插入节点
    public void insert(int position,int newData) {
        Node node=head;
        Node newNode=new Node(newData);
        if(position==0) {
            newNode.setNext(node);
            head=newNode;
        }
        else {
            for(int i=0;i<position-1;i++) {
                node=node.getNext();
            }
            Node nodeNext=node.getNext();
            node.setNext(newNode);
            newNode.setNext(nodeNext);
        }
        size++;
    }
    //获取链表长度
    public int getSize() {
        return size;
    }
    //遍历
    public int getNodeData(int position) {
        if(position<0 || position>=size) {
            return -1;
        }
        Node node=head;
        for(int i=0;i<position;i++) {
            node=node.getNext();
        }
        int data=node.getValue();
        return data;
    }
    //删除节点
    public void delete(int position) {
        Node node=head;
        if(position==0) {
            node=node.getNext();
            head=node;
        }
        else {
            for(int i=0;i<position-1;i++) {
                node=node.getNext();
            }
            Node nextNode=node.getNext();
            node.setNext(nextNode.getNext());
        }
        size-=1;
    }
    //打印链表
    public void show() {
        Node node=head;
        int value;
        for(int i=0;i<size-1;i++) {
            value=node.getValue();
            System.out.print(value);
            System.out.print("->");
            node=node.getNext();
        }
        System.out.print(node.getValue());
        System.out.print("\n");
    }
}
//测试
public class LinkList {
    public static void main(String[] args) {
        MyLinkList link=new MyLinkList();
        for(int i=0;i<20;i+=2)
        link.append(i);
        link.show();
        link.insert(1, 5);
        link.show();
        System.out.println(link.getSize());
        link.delete(2);
        link.show();
        System.out.println(link.getSize());
        System.out.println(link.getNodeData(3));
    }
 
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...