链表

链表是一种线性表,但是并不是安装线性顺序存储数据,而是在每一个节点存到下一个节点的指针。

在链表中,我们会使用到递归算法,它是直接或者间接调用自身算法的过程,往往使算法的描述简洁并且易于理解。链表可以插入、删添操作。

public class Lianbiao
{
    public static void main(String[] args)
    {
        NodeManager nm=new NodeManager();
        nm.addNode("1");
        nm.addNode("2");
        nm.addNode("3");
        nm.addNode("4");
        nm.addNode("5");
        nm.printNode();
        nm.delNode("4");
        nm.printNode();
    }
}
`
//节点管理类
class NodeManager
{
    privae Node root; //根节点
    public void addNode(String name)
    {
        if(root==null)
        {
            root =new Node(name);
        }
        else
        {
            root.add(name);
        }
    }
    public void delNode (String name)
    {
        if(root.getName().equals(name))
            {
                root=root.next;
            }
            else
            {
                root.del(name);
            }
    }

    pubic void printNode()
    {
        if(root!=null)
        {
            System.out.print(root.getName()+"->")
            root.print();
            System.out.println();
        }
    }

    class Node//每个节点对象
    {
        private String name;
        private Node next;//当前节点的下一个节点

        public String getName()
        {
            return name;
        }
        public Node(String name)
        {
            this.name=name;
        }
        public void add(String name)
        {
            if (this.next==null)
            {
                this.next=new Node(name);
            }else
            {
                this.next.add(name);//递归
            }
        }

        public void del(String name)//删除节点
        {
            if (this.next!=null)
            {
                if(this.next.name.equals(name))
                {
                    this.next=this.next.next;
                }else
                {
                    this.next.del(name);
                }
            }
        }

        public void print(String name)
        {
            if(this.next!=null)
            {
                System.out.print(root.next.getName()+"->");            
                root.next.print();          
             }

        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值