java实现单链表

package linkedList;

public class SingleLinkedListDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //进行测试
        //先创建节点
        HeroNode hero1=new HeroNode(1, "宋江", "及时雨");
        HeroNode hero2=new HeroNode(2, "卢俊义", "玉麒麟");
        HeroNode heao3=new HeroNode(3, "吴用", "智多星");
        HeroNode heao4=new HeroNode(4, "林冲", "豹子头");
        
        SingleLinkedList singleLinkedList=new SingleLinkedList();
        singleLinkedList.add(hero1);
        singleLinkedList.add(hero2);
        singleLinkedList.add(heao3);
        singleLinkedList.add(heao4);
        singleLinkedList.list();

    }

}
//定义singleLinkedList来管理我们的英雄
class SingleLinkedList
{
    //先初始化一个头结点,头结点不要动
    private HeroNode head=new HeroNode(0, "", "");
    //思路
    //1.找到当前链表的最后一个节点
    //2.将最后节点的next域指向新的节点
    //添加节点到单向链表
    public void add(HeroNode heroNode)
    {
        //head节点不可以动,因此我们需要一个辅助遍历temp
        HeroNode temp=head;
        //遍历链表找到,找到最后
        while(true)
        {
            //当什么情况下,说明链表带最后了
            if(temp.next==null)
            {
                break;
            }
            //如果没有找到,就将指针后移
            temp=temp.next;
        }
        temp.next=heroNode;
    }
    
    //显示列表
    public void list()
    {
        //先判断列表是否为空
        if(head.next==null)
        {
            return;
        }
        //因为头结点不能动,因此需要一个辅助变量来变量
        HeroNode temp=head.next;
        while(true)
        {
            if(temp==null)//如果为空
            {
                break;
            }
            else
            {
                //输出节点的信息
                System.out.println(temp);
                //将temp后移
                temp=temp.next;
            }
        }
    }
}




//定义一个HeroNode,每个HeroNode对象就是一个节点
class HeroNode
{
    public int no;
    public String name;
    public String nickName;
    public HeroNode next;//指向下一个节点
    
    //构造器
    public HeroNode(int no,String name,String nickName)
    {
        this.no=no;
        this.nickName=nickName;
        this.name=name;
    }
    //为了显示方便,重写toString方法

    @Override
    public String toString() 
    {
        return "HeroNode [no=" + no + ", name=" + name + ", nickName=" + nickName+ "]";
    }
    
}

 

posted @ 2019-07-13 15:36  梦小冷  阅读(267)  评论(0编辑  收藏  举报