首页 > 其他 > 详细

链表入门

时间:2020-09-28 01:05:06      阅读:37      评论:0      收藏:0      [点我收藏+]

链表(LinkedList)概述:链表与数组一样属于一种数据结构。数组是要先确定存放的长度大小,数据的存放是有序可重复的。而链表有初始长度,后续可以根据添加的元素自动扩容,数据的存放是无序可重复。

链表的存储方式:以节点的方式来存储;节点的组成:每个节点由一个date域(存储数据)和一个next域(指向下一个节点)组成;链表的分类:有头节点(单向/双向 链表)、无头节点(循环链表)。

 

链表创建:

public class LinkedListDemo_Review {
    public static void main(String[] args) {

        Node node1 = new Node(1,"张三");
        Node node2 = new Node(2,"李四");
        Node node3 = new Node(3,"王五");

        //实例化链表
        SingleLinkedList slist = new SingleLinkedList();

        //调用添加方法
        slist.add(node1);
        slist.add(node2);
        slist.add(node3);

        //调用显示方法
        slist.List();

    }
}

//2、创建单向链表
class SingleLinkedList{
    //定义头节点
    Node HeadNode = new Node(0,"");

    //创建添加方法
    //思路:从链表最后添加,需要找到链表最后则使用遍历循环判断
    public void add(Node node){
        //定义辅助头节点
        Node temp = HeadNode;
        while(true){
            //首先考虑到直接就是最后一个节点,则跳出循环
            if (temp.next == null){
                break;
            }
            //不是链表最后一位则继续后移,继续遍历判断
            temp = temp.next;
        }
        //当跳出循环表示已经找到链表最后一位,则直接链接节点即可
        temp.next = node;
    }

    //创建显示方法
    //思路:如果为空则直接返回跳出方法;不为空则遍历输出
    public void List(){
        //定义辅助头节点
        Node temp = HeadNode;

        if (temp.next == null){
            System.out.println("链表为空");
            return;
        }
        while(true){
            //判断是否到了链表最后,如果是最后则退出
            if (temp.next == null){
                break;
            }
            //没到结尾则遍历输出链表的节点
            System.out.println(temp.next);
            //每次输出完之后往后移一位,避免死循环
            temp = temp.next;
        }
    }

}

//1、创建节点
class Node{
    //定义属性
    public int no;
    public String name;
    //定义节点
    public Node next;

    public Node(int no, String name) {
        this.no = no;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Node{" + "no=" + no + ", name=‘" + name + ‘\‘‘ + ‘}‘;
    }
}

 上海SEO

链表入门

原文:https://www.cnblogs.com/plus666/p/13742594.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!