数据结构与算法--链表

简介: 首先链表分三种: 单链表,双链表,循环单链表 写个例子说明列表的创建和遍历: public class LinkList { private Node head; private Node current; private void add(i...
首先链表分三种:
单链表,双链表,循环单链表

写个例子说明列表的创建和遍历:
public class LinkList {
    private Node head;

    private Node current;

    private void add(int data) {
        if(head == null) {
            head = new Node(data, null);
            current = head;
        } else {
            //创建新的结点
            Node node = new Node(data, null);
            //新创建的节点和列表进行关联
            current.next = node;
            //移动当前链表的索引位置
            current = node;
        }
    }

    private void print(Node node) {
        if(node == null) {
            return;
        }
        Node current = node;
        while(current != null) {
            System.out.println(current.data);
            current = current.next;
        }
    }

    /**
     * @ClassName: Node
     * @Description: TODO(定义Node数据类型)
     */
    classNode {
        int data;

        Node next;

        public Node() {
        }

        public Node(int data, Node next) {
            super();
            this.data = data;
            this.next = next;
        }

    }

    public static void main(String[] args) {
        LinkList list = newLinkList();
        for(int i = 0; i < 10; i++) {
            list.add(i);
        }
        list.print(list.head);
    }

}
运行结果:
0
1
2
3
4
5
6
7
8
9  
 
 



 



相关文章
|
22天前
|
存储 Java 索引
【数据结构】链表从实现到应用,保姆级攻略
本文详细介绍了链表这一重要数据结构。链表与数组不同,其元素在内存中非连续分布,通过指针连接。Java中链表常用于需动态添加或删除元素的场景。文章首先解释了单向链表的基本概念,包括节点定义及各种操作如插入、删除等的实现方法。随后介绍了双向链表,说明了其拥有前后两个指针的特点,并展示了相关操作的代码实现。最后,对比了ArrayList与LinkedList的不同之处,包括它们底层实现、时间复杂度以及适用场景等方面。
41 10
【数据结构】链表从实现到应用,保姆级攻略
|
1月前
|
存储 C语言
【数据结构】c语言链表的创建插入、删除、查询、元素翻倍
【数据结构】c语言链表的创建插入、删除、查询、元素翻倍
【数据结构】c语言链表的创建插入、删除、查询、元素翻倍
|
1月前
|
算法
【算法】合并两个有序链表(easy)——递归算法
【算法】合并两个有序链表(easy)——递归算法
【算法】合并两个有序链表(easy)——递归算法
|
1月前
|
存储 算法
【初阶数据结构篇】顺序表和链表算法题
此题可以先找到中间节点,然后把后半部分逆置,最近前后两部分一一比对,如果节点的值全部相同,则即为回文。
|
1月前
|
存储 测试技术
【初阶数据结构篇】双向链表的实现(赋源码)
因为头结点的存在,plist指针始终指向头结点,不会改变。
|
1月前
|
存储 测试技术
【初阶数据结构篇】单链表的实现(附源码)
在尾插/尾删中,都需要依据链表是否为空/链表是否多于一个节点来分情况讨论,目的是避免对空指针进行解引用造成的错误。
|
1月前
|
算法
【数据结构与算法】共享双向链表
【数据结构与算法】共享双向链表
12 0
|
1月前
|
算法
【数据结构与算法】双向链表
【数据结构与算法】双向链表
11 0
|
1月前
|
算法
【数据结构与算法】循环链表
【数据结构与算法】循环链表
13 0
|
1月前
|
存储 算法
【数据结构与算法】链表
【数据结构与算法】链表
17 0