数据结构与链表(Linked List)

链表的储存方式
1.链表都是以节点的方式存储 2.每个节点包含data域,next域 ,其中next域指向下一个data域3.每一个节点不一定顺序存储
4. 链表分带头节点的和不带头节点的下·

实例 ,添加/创建
1.先创建一个head头节点, 作用是表示单链表的头
2.后面我们每添加一个节点,就直接加到链表的最后
便利

package com.asia.DataStructures;

/**
 * @author asia
 * @Title:
 * @Package
 * @Description: 单链表的实现
 * @date 2019/8/162:58
 */
public class SingleLinkedListDome {
    public static void main(String[] args) {
        System.out.println("方法执行");
        HeroNode heroNode1 =  new  HeroNode(1,"宋江","及时与");
        HeroNode heroNode2 = new HeroNode(2, "吴俊逸", "玉麒麟");
        HeroNode heroNode3 =  new  HeroNode(3,"吴用","智多星");
        HeroNode heroNode4 =  new  HeroNode(4,"林冲","豹子头");
        //加入
        SingleLinkedList singleLinkedList = new SingleLinkedList();
        singleLinkedList.add(heroNode1);
        singleLinkedList.add(heroNode2);
        singleLinkedList.add(heroNode3);
        singleLinkedList.add(heroNode4);
        singleLinkedList.list();

    }
}



class SingleLinkedList{
    //先初始化一个头节点,头节点不要动,不存放具体的数据
    private  HeroNode  head=new HeroNode(0,"","");
    //思路,当不考虑标号顺序时
    //1.找到链表的最后节点
    //2.将最后这个节点找到新的节点
    public  void   add(HeroNode  heroNode){
         //因为头节点不能动,因此我们需要一个辅助遍历temp
        HeroNode  temp=head;
        while(true){
            if (temp.next==null){
                break;
            }
            temp=temp.next;
        }
        temp.next=heroNode;

    }
    public  void  list(){
       //判断链表是否为空
        if(head.next==null){
            System.out.println("链表为空");
            return;
        }
      //因为头节点不能动,因此我们需要一个辅助遍历temp
      HeroNode  temp=head.next;
    while (true){

        //判断是否到最后
        if (temp==null){
            break;
        }
        //输出节点信息
        System.out.println(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.name = name;
        this.nickname = nickname;
    }

    @Override
    public String toString() {
        return "HeroNode{" +
                "no=" + no +
                ", name='" + name + '\'' +
                ", nickname='" + nickname + '\'' +
                '}';
    }
}

你可能感兴趣的:(java)